我从两个定义字符串中最长单词的网站获得了这两个代码:
代码1。
def longest_word(sentence)
words = sentence.split(" ")
longest_word = nil
word_idx = 0
while word_idx < words.length
current_word = words[word_idx]
if longest_word == nil
longest_word = current_word
elsif longest_word.length < current_word.length
longest_word = current_word
end
word_idx += 1
end
longest_word
end
代码2。
def LongestWord(sen)
arr = sen.split.map do |w|
/[a-zA-Z0-9\s]+/.match(w)
end
longest = arr.max_by do |w|
w.to_s.length
end
longest
end
但是一个代码给了我真实,一个给了我假。有人可以告诉我为什么吗?
答案 0 :(得分:1)
区别在于:
LongestWord
返回MatchData
http://ruby-doc.org/core-2.2.0/MatchData.html longest_word
返回String
所以
longest_word(sentence).eql?(LongestWord(sentence).to_s) == true