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
Ruby中对象数组排序相关推荐
- ruby 数组自定义排序_在Ruby中对数组排序
ruby 数组自定义排序 Sorting was a preoccupation for computer scientists from early on. There were many algo ...
- ruby 新建对象_Ruby中的面向对象编程
ruby 新建对象 Before getting into understanding how Object-oriented programming is implemented in Ruby, ...
- Ruby中的类与对象(一)
一些约定: 类名首字母大写 方法名首字母小写 end在Ruby中无处不在. 声明类 class BookInStock end 创建类对象 a_book = BookInStock.new anoth ...
- 如何在Ruby中使用数组方法
介绍 (Introduction) Arrays let you represent lists of data in your programs. Once you have data in an ...
- ruby 新建对象_Ruby面向对象编程的简介
ruby 新建对象 by Saul Costa 由Saul Costa Object-oriented programming (OOP) is a programming paradigm orga ...
- C#对象数组排序方法
一个排序的类,用了几种方式实现的. using System; namespace DataStruct { public class Sorter { /// <summar ...
- Ruby中的设计模式
继续 上 节讲述过的Singleton . Proxy 及 Iterator各模式,本节再来考察几个别的设计模式.下面按顺序来考察 Prototype . Template Method 和 Obse ...
- Ruby中的设计模式——《松本行弘的程序世界》
< 设计模式 > 一书是用C++ 和 Smalltalk 介绍模式实例的.看了那些例子,大家都会感觉到,绝大多数的模式用 Smalltalk 实现起来非常简单.这是为什么呢? 因为Smal ...
- map(&:name)在Ruby中是什么意思?
我在RailsCast中找到了以下代码: def tag_names@tag_names || tags.map(&:name).join(' ') end 什么是(&:name)在m ...
最新文章
- linux新建文件权限问题
- 【转】data和attr的用法与区别
- Spark SQL读数据库时不支持某些数据类型的问题(Timestamp with local Timezone)
- LRU最近最少使用缓存集合
- 模板:广义二项式反演/广义容斥(组合数学)
- python基础小白题2
- javascript学习笔记之document对象、表单及表单元素、脚本化cookie
- java的头怎么写_JAVA对象布局之对象头(Object Header)
- 图灵、冯诺依曼谁才配得上计算机之父?
- dns服务器优化 360,360DNS优化
- arduino定时器控制舵机_Arduino通过串口控制舵机角度
- 《蔡康永的说话之道》书摘
- KNN(K临近算法)的简单模拟实现
- 手机端微信发朋友圈功能测试点总结
- 编码技巧——全局异常捕获统一的返回体业务异常
- svn提交怎么全选_SVN 一次性提交多个目录中文件
- dnf跨6服务器维护,地下城与勇士DNF2018全跨区表一览
- VMWare 移动Linux CentOS 7虚拟机后连不上网怎么办
- R语言_电信客户流失数据分析
- GX、LS型螺旋输送机结构新颖 噪声低
热门文章
- 熟练掌握Word2003中的突出显示功能
- 《APUE》读书笔记—第十三章守护进程
- 一个好的设计应当具备哪些要素
- 【Deep Learning】MLP识别手写 MNIST数字集
- Linux下NFS(网络文件系统)的建立与配置方法
- Get Started with Lightning Knowledge
- Map .NET Concepts to the Lightning Platform——list,set,map
- java的知识点33——死锁及解决方案
- JavaScript 技术篇-JSON字符串在线快速格式化查看实例演示,json.cn网址格式化json字符串
- C++——类访问修饰符