在Ruby中,我们定义类成员函数
class Dog
def bark
puts "woof"
end
end
Run Code Online (Sandbox Code Playgroud)
我想知道并且在google搜索中彻底失败的是,在Ruby中如何以及在何处定义处理对象数组的方法?
我希望能够做到这样的事情:
dogs = [Dog.new, Dog.new, Dog.new]
dogs.some_function
Run Code Online (Sandbox Code Playgroud)
我如何定义some_function?
注意:我不是在解决特定问题之后,更多的是如何定义这样一个函数的步骤.
为了让你的所有狗都吠叫,你应该each在阵列上使用:
dogs.each(&:bark)
Run Code Online (Sandbox Code Playgroud)
这相当于
dogs.each { |dog| dog.bark }
Run Code Online (Sandbox Code Playgroud)
很少需要在数组上定义方法,在这种情况下,它将在所有数组上都可用,包含任何内容.要做到这一点,你需要声明它里面的Array类,再次声明它:
class Array
def some_function
# do something...
end
end
Run Code Online (Sandbox Code Playgroud)
然后你可以运行:
dogs = [Dog.new, Dog.new, Dog.new]
dogs.some_function
Run Code Online (Sandbox Code Playgroud)
并且
numbers = [1, 2, 3, 4]
numbers.some_function
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |