def line
puts __LINE_ # [sic]
end
line()
打印"2"
。但它应该打印"5"
,因为该方法在那里被调用。为什么我可以改变这个问题?它应该用__LINE_
[原文如此]编写。
答案 0 :(得分:1)
__LINE__
指令报告它所在的行,而不是调用者的行。
例如,这个简短的测试程序:
def line
puts __LINE__
end
def line_2
puts __LINE__
end
line
line_2
将报告此输出:
2
6
这是预期的输出,因为__LINE__
出现在源代码的第2行和第6行。