例如
func(@param) do |f|
some code here
end
和
@param.each do |sth|
some code here
end
绝对值符号在这里有什么作用?我不明白这两段代码。
例如
func(@param) do |f|
some code here
end
和
@param.each do |sth|
some code here
end
绝对值符号在这里有什么作用?我不明白这两段代码。
它是块内的局部变量,因此对于该行:
@param.each do |sth|
您正在迭代@param
正确,其中的每个项目@param
都单独称为sth
.
所以 if@param
指的是一个包含数字的数组
[1,3,5,4]
在第一次迭代期间sth
将是1
,然后3
,然后5
,然后4
。
同样适用于:
func(@param) do |f|
除了现在调用局部变量f
!你可以随心所欲地称呼它,甚至|ihavenoideawhatimdoing|
这是一个局部变量,它表示对于do
...之间的代码块,定义end
了变量。f
它表示实例变量。如果人们使用像attr_accessor这样的attr_*方法,您经常会看到它互换,这使得@someattr和self.some_attr在实例方法中等效。