例如
func(@param) do |f|
some code here
end
和
@param.each do |sth|
some code here
end
绝对值标志在这里做什么?我不明白这两段代码。
答案 0 :(得分:4)
它是块内的局部变量,因此对于行:
@param.each do |sth|
你正在迭代@param
,@param
中的每个项目都被称为sth
。
因此,如果@param
引用包含数字的数组
[1,3,5,4]
在第一次迭代中,sth
将是1
,然后是3
,然后是5
,然后是4
。
同样适用于:
func(@param) do |f|
除了现在本地变量被称为f
!您可以将其称为任何您想要的东西,甚至是|ihavenoideawhatimdoing|
答案 1 :(得分:2)
这是一个局部变量,它表示对于do
... end
之间的代码块,定义了变量f
。
答案 2 :(得分:2)
它是块的参数。该块是do和end之间代码的一部分。该代码块可以使用f
或sth
,您的示例中的代码可能已由func
或each
设置。
tutorial on Ruby blocks可能会有所帮助。
Labmda calculus - 更抽象,但这是我第一次看到这些东西的背景。
答案 3 :(得分:0)
它表示实例变量。如果人们使用 attr_accessor 等 @someattr 和 self.some_attr 这些方法,你经常会看到它互换了>在实例方法中等效。