如果两者具有相同的名称和相同的范围,Ruby如何区分变量和方法之间的差异?
鉴于情景:
def something
"33"
end
something = "44"
something # --> calling something (variable or method?)
我很困惑,因为两者都被称为某事。我的问题是两部分:
A)哪个会胜出:变量或方法以及为什么?
B)Ruby有没有办法区分两者,所以你可以调用某些东西(变量)和某些东西(方法)?
答案 0 :(得分:3)
变量将是第一个,但您可以调用方法:
array.push({id: i})
问题
为什么?
@SergioTulentsev给出了一个很好的答案:
局部变量优先于无括号方法调用,否则无法引用变量
此外,有关方法和变量的更多信息,请阅读here