ruby – 按字典顺序排序
发布时间:2020-12-17 02:48:05 所属栏目:百科 来源:网络整理
导读:所以我想按字典顺序排列我的坐标数组.但我不知道该怎么做.数组中的每个元素都是一个Coordinate对象,其Fixnum字段为#x和#y. 我是Ruby的新手,并不一定了解排序??枚举. 它会是这样的吗? coordinate_array.sort! { |a,b| a.x == b.x a.y == b.y } 解决方法 首先
所以我想按字典顺序排列我的坐标数组.但我不知道该怎么做.数组中的每个元素都是一个Coordinate对象,其Fixnum字段为#x和#y.
我是Ruby的新手,并不一定了解排序??枚举. coordinate_array.sort! { |a,b| a.x <==> b.x && a.y <==> b.y } 解决方法
首先,宇宙飞船操作符是< =>不是< ==>
其次,你没有正确地组合2个比较:比较的结果将是-1,0或1.这些都是真正的值和真正的&& foo只是foo,所以你的代码只能按y值排序 你可以把它写成 x_ordering = a.x <=> b.x x_ordering == 0 ? a.y <=> b.y : x_ordering 但是数组已经实现< =>所以你可以做到 array.sort! { |a,b| [a.x,a.y] <=> [b.x,b.y]} 在每次比较中创建2个数组的费用更高,更清晰 你甚至可以这样做 array.sort_by! { |a| [a.x,a.y] } 哪个更清晰,但内存配置略有不同.这将创建一个数组,其原始值将替换为块返回的值,并使用它来对原始数组进行排序. 我通常会使用后一种版本,除非我有其他令人信服的理由. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- oracle – 在不同用户下创建的索引
- Oracle CHAR,VARCHAR,VARCHAR2,nvarchar类型的区别与使用
- c# – 无法从Activator.CreateInstance中捕获异常
- 依赖注入 – 构造函数注入:有多少依赖是太多?
- ruby-on-rails – 将STI和多态与rails 4相结合
- 维护从XML到Excel文件的层次结构 – Java
- .net – 在OpenFileDialog上设置“我的电脑”位置(WindowsA
- ruby-on-rails-3 – Rails 3 Rspec 2:验证失败:已经发送了
- Ajax介绍
- cocos2dx 3.x Value、Vector和Map的认识