绝对符号在Ruby中意味着什么?

时间:2013-02-28 01:06:43

标签: ruby-on-rails ruby

例如

func(@param) do |f|
    some code here
end

@param.each do |sth|
    some code here
end

绝对值标志在这里做什么?我不明白这两段代码。

4 个答案:

答案 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之间代码的一部分。该代码块可以使用fsth,您的示例中的代码可能已由funceach设置。

tutorial on Ruby blocks可能会有所帮助。

Labmda calculus - 更抽象,但这是我第一次看到这些东西的背景。

答案 3 :(得分:0)

它表示实例变量。如果人们使用 attr_accessor @someattr self.some_attr 这些方法,你经常会看到它互换了>在实例方法中等效。