2017-05-23 126 views
0

定義名爲first_longer_than_second的方法,其參數爲first,另一個稱爲second。如果傳入的first字大於或等於second字的長度,則該方法將返回true。否則返回false。以下是如何將被調用的方法和預期收益:將兩個字符串的長度與Ruby進行比較

這是我有:

def first_longer_than_second(first, second) 
    if first.length >= second.length 
    puts true 
    else 
    puts false 
    end 
end 

我得到錯誤,我不知道爲什麼。

+2

請問你能發表什麼錯誤? – bork

+1

請正確格式化您的代碼 - https://meta.stackexchange.com/questions/18614/style-guide-for-questions-and-answers – skwidbreth

+0

在黑暗中拍攝時不知道您的錯誤是什麼,但'puts'會打印然後返回'nil',這不像你的方法應該做的那樣。 – jmschles

回答

2

Ruby比較運算符如>=自然返回布爾值。您不需要使用條件語句,而且幾乎不會返回字符串等效項truefalse。另外,Ruby約定是在返回布爾值的方法的名稱中使用問號。

對於這種方法,Ruby允許我們這樣寫:

def first_longer_than_second?(first, second) 
    first.length >= second.length 
end 

然後,你可以這樣調用方法:

>> first_longer_than_second?('hello', 'sir') 
=> true 

注意方法的名稱有點混亂,因爲它返回如果firstsecond的長度相同,則返回true。您可能會考慮重新命名該方法。名字很重要!