Ruby中对象数组排序

Ruby对象数组的排序

作者刚刚接触Ruby,因之前总认为脚本语言语法不规范,对脚本语言有些偏见,如不是项目需要并不会去学习PYTHON、RUBY等语言。现在项目中需要实现对象数组排序的任务,对于昨天开始看ruby的我来说压力山大啊!【汗】

但是经过一番查询资料,终于初步实现了自己想要的结果,现将自己做的测试程序记录下来,以记念在ruby的道路上打的第一个小怪!代码如下:

 1 #!/usr/bin/ruby
 2 
 3 class Location
 4     attr_accessor :longitude
 5     attr_accessor :latitude
 6     def initialize(lo,la)
 7         @longitude, @latitude = lo,la
 8     end
 9 end
10 
11 class OBD
12     attr_accessor :gps
13     attr_accessor :loc
14     def initialize(g,l)
15         @gps = g
16         @loc = l
17     end
18     
19 end
20 
21 loc = Location.new(10,20)
22 obd = OBD.new(1,loc)
23 loc2 = Location.new(20,30)
24 obd2 = OBD.new(5,loc2)
25 loc3 = Location.new(40,50)
26 obd3 = OBD.new(2,loc3)
27 
28 @obds = []
29 @obds[0] = obd
30 @obds[1] = obd2
31 @obds[2] = obd3
32 
33 
34 @obds.sort! {|a,b| a.gps <=> b.gps}#注意此处的'!',如果没有'!',则原数组不会被改变,建议去掉叹号后试试效果
35 puts obd.gps
36 puts obd.loc.longitude
37 puts obd.loc.latitude
38 puts "#{@obds[0].gps},#{@obds[0].loc.longitude},#{@obds[0].loc.latitude}"
39 puts "#{@obds[1].gps},#{@obds[1].loc.longitude},#{@obds[1].loc.latitude}"
40 puts "#{@obds[2].gps},#{@obds[2].loc.longitude},#{@obds[2].loc.latitude}"

程序运行结果:

希望对大家有帮助吧!

[注]:本文为作者原创,转载请标明出处

转载于:https://www.cnblogs.com/myWAY2/p/5141645.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值