Ruby 类的新实例还是其他什么?
我见过这样的代码Ruby 类的新实例还是其他什么?,ruby,Ruby,我见过这样的代码 Specification.new do |s| s.name = %q{casein} s.version = "3.1.11" .... 有人能解释一下“do | s |”背后的想法吗?这是一个在ruby中使用块的示例。块是可以传递给方法的代码块(new只是一个常规方法) 在这里,Foo中的初始值设定项调用一个块(如果给定了一个块),并将一个参数传递给它。块然后可以接收该参数并执行其工作 这里。这是一个参数,它被规范的初始值设定项 在那门课上,情况可能是这样的:
Specification.new do |s|
s.name = %q{casein}
s.version = "3.1.11"
....
有人能解释一下“do | s |”背后的想法吗?这是一个在ruby中使用块的示例。块是可以传递给方法的代码块(
new
只是一个常规方法)
在这里,Foo
中的初始值设定项调用一个块(如果给定了一个块),并将一个参数传递给它。块然后可以接收该参数并执行其工作
这里。这是一个参数,它被
规范的初始值设定项
在那门课上,情况可能是这样的:
class Specification
def initialize
# ...
yield self
# ...
end
end
yield
执行一个块并将一个参数传递给它-self
(它可能是任何其他对象,所以最好检查源代码)
代码块通常如下所示:
do |arguments, list|
# code here
end
但参数是可选的(除非它是lambda,并且您会因为太少或太多而得到异常)搜索“ruby块”。我很惊讶没有。。以前遇到过。它在许多地方使用:。每个
都是一个非常常见的例子<代码>do |参数|。。end
与{| params | |..}
相同,块的开始/结束使用了不同的标记,如果这是混淆的原因。哦,还有,请把真正的问题放在标题中。
do |arguments, list|
# code here
end