两个代码之间的区别:我得到一个错误而另一个错误

时间:2016-08-03 16:10:46

标签: ruby

我从两个定义字符串中最长单词的网站获得了这两个代码:

代码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

但是一个代码给了我真实,一个给了我假。有人可以告诉我为什么吗?

1 个答案:

答案 0 :(得分:1)

区别在于:

所以

longest_word(sentence).eql?(LongestWord(sentence).to_s) == true