有些时候我们需要给类的一个示例对象添加方法如下:
class Person
end
pedro = Person.new
peter = Person.new
# inject a method in the instances
def pedro.hello_world; puts "Hola Mundo"; end
def peter.hello_world; puts "Hello World"; end
pedro.hello_world #=> Hola Mundo
peter.hello_world #=> Hello World
利用这个,就可以同样类型的User,根据不一样的数组添加不同的排序方法了
employees = User.find(:conditions => "career= employee")
def employees.sort_by_attribute(sym)
sort {|x, y| x.send(sym) <=> y.send(sym)}
end
manager = User.find(:conditions => "career = manager")
def employees.sort_by_attribute(sym)
sort {|x, y| y.send(sym) <=> x.send(sym)}
end
分享到:
相关推荐
在Ruby数组中,元素可以通过索引来访问和操作,索引通常从0开始。 ### 数组创建 Ruby提供多种创建数组的方法。最常见的是通过方括号`[]`来创建,例如: ```ruby arr = [1, 2, 3, "four", true] # 创建包含不同类型...
- 动态特性:Ruby的动态性体现在可以在运行时添加或修改方法、属性,这部分在源代码中会有体现。 3. **模块(Module)** - 模块用于组织代码,可以包含常量、类方法和实例方法,也可以实现类的多重继承(mixin)...
例如,"E3.8-1.rb"可能涉及的是数组和集合操作,你将学习如何创建和操作数组,包括添加、删除元素,遍历数组,以及使用内置的排序和查找方法。"E4.4-1.rb"和"E4.5-1.rb"可能涉及到Ruby的字符串操作和正则表达式,这...
5. `方法用于向数组末尾添加元素,等同于`push`方法。 6. `compact` 和 `compact!` 分别用于创建无`nil`元素的新数组或直接移除当前数组中的`nil`元素。 7. `delete_if` 通过传入的代码块删除满足条件的元素。 8. `...
通过本文的学习,我们可以了解到Ruby on Rails的一些基础知识点,包括各种字符串处理方法、正则表达式方法、时间处理方法、数组处理方法、验证方法以及枚举混合方法,同时也了解了Rails项目的默认目录结构。这些基础...
2. 在迭代中引用原来的对象或直接改变数组的值:在迭代函数中,除了可以访问数组元素的值外,还可以引用原来的数组对象以及当前元素的索引位置。这样,我们就可以在迭代过程中直接修改原数组的值。但是,如果在迭代...
`yield`用于将控制权传递给传入的方法中的代码块: ```ruby def print_items(items) items.each do |item| yield(item) end end print_items([1, 2, 3]) { |item| puts item } ``` #### 六、表达式 Ruby中的...
GitHub上的Ruby开源项目按星标数量排序,可以发现最受欢迎的项目。例如: - **Rails**: 一个基于Ruby的Web应用开发框架,遵循MVC(模型-视图-控制器)架构模式。 - **Sinatra**: 轻量级Web应用框架,适用于小型应用...
Ruby 支持不同类型的变量: - **局部变量**(或伪变量):以小写字母或下划线开头,例如 `var_var`。 - **全局变量**:以 `$` 开头,例如 `$var`。 - **类变量**:在类中定义,以 `@@` 开头,例如 `@@var`。 - **...
读者可以了解到如何创建、访问和操作这些集合,比如添加元素、删除元素、排序、遍历等。同时,也会涉及到一些高级用法,如利用块(block)进行迭代处理。 **4. Working with Objects** 在面向对象编程(OOP)中,对象...
- 堆常用于优先队列的实现,Ruby没有内置堆类型,但可以使用数组和排序方法模拟堆操作。 在“data-structures-ruby”项目中,开发者创建了一个gem来演示这些数据结构的实现和用法,这对于学习和理解Ruby中的数据...
Ruby数组支持多种操作,如添加元素(`push`、`unshift`)、删除元素(`pop`、`shift`)、查找元素(`index`)以及合并(`concat`)等。 二、哈希(Hash) 哈希是一种键值对的集合,它允许通过唯一的键来访问和存储...
Ruby是一种面向对象的、动态的编程语言,它的简洁性和强大的库支持使得它成为实现算法的理想选择。要基于Ruby实现Pagerank,我们首先需要解析网页链接数据,这可能涉及到HTML解析库如Nokogiri。接着,构建一个邻接...
练习方法和排序-编写函数以对数字数组进行排序/排序。 电影之夜 练习散列和符号-构建一个显示,添加,更新和删除电影分级的程序。 虚拟电脑 练习对象,类和继承之类的OOP概念(1)-创建一个虚拟计算机,该计算机可以...
在内部,它不是一棵树-它只是一个排序的数组,而查询树只是一个简单的二进制搜索(在0.1.0之前的版本中,它是作为实树实现的,但是这些树消耗了大量内存)。 安装 将此行添加到您的应用程序的Gemfile中: gem '...
这需要掌握 Ruby 的数组和哈希数据结构,以及相关的操作方法,如 `map`、`each`、`select`、`reduce` 等。 3. **字符串处理**:字符串操作也是常见问题,包括拼接、分割、替换和格式化。熟悉 `String` 类的方法,如...
6.2.1 打印对象和toString方法 170 6.2.2 ==和equals比较运算符 172 6.3 类成员 175 6.3.1 理解类成员 175 6.3.2 单例(Singleton)类 176 6.4 final修饰符 177 6.4.1 final变量 177 6.4.2 final方法 181 ...