2017-05-23 93 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。您可能会考虑重新命名该方法。名字很重要!