2016-05-14 35 views
-4
def line 

    puts __LINE_ # [sic] 

end 

line() 

打印"2"。但它應該打印"5",因爲該方法在那裏被調用。爲什麼我可以改變這個問題?它應該花的行寫在__LINE_ [原文如此]。`__LINE__`方法行

+0

什麼問題?什麼是「花這一排」? – sawa

+0

他應該說什麼行是wrared方法 – GluecklichesHuhn

+0

這就是問題 – GluecklichesHuhn

回答

1

__LINE__指令報告它所在的行,而不是調用者的行。

例如,該短的測試程序:

def line 
    puts __LINE__ 
end 

def line_2 
    puts __LINE__ 
end 

line 
line_2 

將報告這個輸出:

2 
6 

即預期的輸出,因爲出現在線2和源代碼的6 __LINE__

+0

我知道..而且?這不會影響我。我會,如果方法會調用,那麼他寫什麼線。或者這是不可能的? – GluecklichesHuhn