我在代码战中遇到了一些编码挑战,在你通过挑战后你会看到其他人的答案,其中一个看起来像这样:
def weirdcase(string)
string.split(' ').map do |word|
word.split('').each_with_index.map do |char, i|
i % 2 == 0 ? char.upcase : char.downcase
end.join('')
end.join(' ')
end
代码运行得很好。我从来没有见过像这样结束的方法。我很好奇。我想更多地了解这一点,例如:这是常见的吗?它被认为是好的还是坏的做法?为什么在某种情况下这会更好?如果是的话?人们可能想要结束的方法的一些例子是什么?
答案 0 :(得分:2)
这称为方法链。 它对前一个方法的结果执行链式方法。
例如,这会调用.split
变量上的string
方法,该变量返回调用.map
方法的数组。
string.split(' ').map do |word|
答案 1 :(得分:2)
方法调用不是附加到end
关键字,而是附加到以end
关键字结尾的块的结果。 Ruby中的所有内容都返回一个值,而且几乎每个值都是一个对象。因此,您可以调用这些值的方法。