例如
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在实例方法中等效。