iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >我的 golang stldib 排序出了什么问题?
  • 586
分享到

我的 golang stldib 排序出了什么问题?

2024-04-04 23:04:29 586人浏览 八月长安
摘要

知识点掌握了,还需要不断练习才能熟练运用。下面编程网给大家带来一个golang开发实战,手把手教大家学习《我的 Golang stldib 排序出了什么问题?》,在实现功能的过程中也带大家重新温习相

知识点掌握了,还需要不断练习才能熟练运用。下面编程网给大家带来一个golang开发实战,手把手教大家学习《我的 Golang stldib 排序出了什么问题?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我正在尝试按结构体的一个字段对(golang)结构体切片进行排序。

我看过很多例子、演示和文档,我觉得我明白了,但我仍然无法让我的代码正常工作。

package main

import (
    "fmt"
    "sort"
)

type Method struct {
    MethodNumber int       `JSON:"methodNumber"`
    MethodRank   int       `json:"rank"`
    MethodRMSE   float64   `json:"error"`
    Forecast     []float64 `json:"forecast"`
}

// extra stuff for sorting.
type ByError []Method

func (s ByError) Len() int {
    return len(s)
}
func (s ByError) Swap(i, j int) {
    s[i], s[j] = s[j], s[i]
}
func (s ByError) Less(i, j int) bool {
    return s[i].MethodRMSE < s[i].MethodRMSE
}

func main() {

    xs := make([]Method, 0)
    fmt.Println(len(xs))
    xs = append(xs, Method{MethodNumber: 1, MethodRMSE: 10})
    xs = append(xs, Method{MethodNumber: 2, MethodRMSE: 8})
    xs = append(xs, Method{MethodNumber: 3, MethodRMSE: 6})
    xs = append(xs, Method{MethodNumber: 4, MethodRMSE: 4})

    fmt.Printf("%+v \n", xs)
    sort.Sort(ByError(xs))
    fmt.Printf("%+v \n", xs)
    sort.Sort(sort.Reverse(ByError(xs)))
    fmt.Printf("%+v \n", xs)


}

我的非工作代码:https://play.golang.org/p/h8shvjtqspm

工作接近重复:Https://play.golang.org/p/vactl0vwk3l(来自另一个 so 用户)

我的应该按 rmse 排序,但它根本不会改变顺序。现在,我的演示的结果应该是按 rmse 升序排序,然后反向排序。


解决方案


这里有错别字

func (s byerror) less(i, j int) bool {
    return s[i].methodrmse < s[i].methodrmse
}

应该是

func (s ByError) Less(i, j int) bool {
    return s[i].MethodRMSE < s[j].MethodRMSE
}

因为有点难看,第一个(错误的)版本将该项目与其自身进行比较(两个索引都是 i)。第二个正确使用了 ij

本篇关于《我的 golang stldib 排序出了什么问题?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注编程网公众号!

您可能感兴趣的文档:

--结束END--

本文标题: 我的 golang stldib 排序出了什么问题?

本文链接: https://www.lsjlt.com/news/596372.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 我的 golang stldib 排序出了什么问题?
    知识点掌握了,还需要不断练习才能熟练运用。下面编程网给大家带来一个Golang开发实战,手把手教大家学习《我的 golang stldib 排序出了什么问题?》,在实现功能的过程中也带大家重新温习相...
    99+
    2024-04-04
  • JavaScript的类出现了什么问题
    今天就跟大家聊聊有关JavaScript的类出现了什么问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。虽然JavaScript类看起来一切正常,但...
    99+
    2024-04-02
  • 在 Golang 中编组有序映射时排序 JSON 键的问题
    在Golang中编组有序映射时,排序JSON键是一个常见的问题。当我们从数据库或其他数据源中获取数据并将其编组为JSON格式时,经常需要对键进行排序,以保证输出的JSON对象具有一致的...
    99+
    2024-02-09
    键值对
  • excel排序排不了的原因是什么
    本篇内容介绍了“excel排序排不了的原因是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!excel排序排不了的原因:一、选择范围排序只...
    99+
    2023-07-02
  • golang快速排序的方法是什么
    Golang中实现快速排序的方法如下: package main import "fmt" func mai...
    99+
    2024-02-29
    golang
  • golang排序去重的方法是什么
    在Go语言中,可以使用sort和slice的特性来进行排序和去重。 排序方法: 使用sort包中的sort.Slice()函数来对...
    99+
    2023-10-27
    golang
  • golang出现内存逃逸会导致什么问题
    当Golang程序出现内存逃逸时,会导致以下几个问题: 垃圾回收开销增加:内存逃逸会导致对象分配在堆上,而不是在栈上。这意味着垃...
    99+
    2023-10-26
    golang
  • 为什么我的虚拟主机访问不了
    可能有几个原因导致您的虚拟主机无法访问:1. DNS解析问题:请确保您的域名已正确解析到虚拟主机的IP地址。您可以通过ping命令来...
    99+
    2023-08-31
    虚拟主机
  • awk中的数组排序问题怎么解决
    在awk中,可以使用内置的sort函数对数组进行排序。sort函数的用法如下:```asort(array [, target])`...
    99+
    2023-09-16
    awk
  • chromedp click 在我的 golang 代码中不起作用。你能找出问题所在吗?
    php小编草莓,你好!关于你提到的问题,chromedp click 在你的 golang 代码中无法起作用的情况,我可以帮你找出问题所在。chromedp 是一个使用 Chrome ...
    99+
    2024-02-10
    点击事件
  • python堆排序输出下标的方法是什么
    在Python中,可以使用heapq模块来实现堆排序,并输出元素的下标。 下面是一个示例代码: import heapq def ...
    99+
    2023-10-22
    python
  • Apache函数在Java中的Load过程中出现了什么问题?
    在Java开发中,Apache函数是非常常见的工具库。然而,有时候在使用这些函数时会出现一些问题,其中最常见的问题就是在Load过程中出现错误。 这个问题的主要原因是因为Java的ClassLoader机制不同于其他语言,所以在Load过...
    99+
    2023-09-07
    load apache 函数
  • 我用 go 编写的递归函数有什么问题?
    问题内容 我正在通过《the go 编程语言》一书学习 golang,在第 5 章第 5.3 节(多个返回值)练习 5.5 中,我必须实现函数 countwordandimages,该...
    99+
    2024-02-06
  • 如何解决layui数据表格排序图标被超出的表头挤出去的问题
    小编给大家分享一下如何解决layui数据表格排序图标被超出的表头挤出去的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!效果如下解决办法就是给图标加定位,过长的时候加上.show-sor...
    99+
    2024-04-02
  • 为什么TypeScript的Enum会出现问题
    目录发生了什么呢?什么时候用控制枚举的数字Bit值控制索引非数字枚举结论TypeScript引入了很多静态编译语言的特性,比如class(现在是JavaScript的一部分了),in...
    99+
    2024-04-02
  • 在Node.js中怎么快速了解出错的问题
    本篇内容介绍了“在Node.js中怎么快速了解出错的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Di...
    99+
    2024-04-02
  • 为什么会出现无权限访问phpmyadmin的问题
    小编给大家分享一下为什么会出现无权限访问phpmyadmin的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!由于我安装wam...
    99+
    2024-04-02
  • Golang三个常见的编程问题是什么
    这篇文章主要讲解了“Golang三个常见的编程问题是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Golang三个常见的编程问题是什么”吧!问题1:我需要维护一组"物品&quo...
    99+
    2023-06-16
  • Springboot 我随手封装了一个万能的导出excel工具,传什么都能导出
    前言 如题,这个小玩意,就是不限制你查的是哪张表,用的是什么类。 我直接一把梭,嘎嘎给你一顿导出。 我知道,这是很多人都想过的, 至少我就收到很多人问过我这个类似的问题。 我也跟他们说了,但是他们就是不动手,其实真的很简单。 不动...
    99+
    2023-08-31
    spring boot excel java 导出 反射
  • Redis序列化时的内存溢出问题怎么解决
    Redis在进行序列化时可能会出现内存溢出的问题,主要原因是序列化的数据量过大或者是Redis服务器的内存不足。要解决这个问题,可以...
    99+
    2024-04-29
    Redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作