红宝石回文布尔返回false

时间:2019-02-20 00:53:18

标签: ruby

为什么返回currentCell.nameLabel.text = users[indexPath.row]

valueToPass = users[indexPath.row]

2 个答案:

答案 0 :(得分:4)

如果str是任何字符串,

str == str.reverse!
  #=> true

例如,

str = "abc"
str == str.reverse!
  #=> true

str == str.reverse!str.==(str.reverse!)的语法糖。 Ruby评估此表达式的第一步是评估参数str.reverse!。该表达式有两件事:用反转的字符串替换str的值,并返回反转的字符串。然后,方法==str.reverse!返回的值与str保留的值进行比较。由于它们相同,因此表达式返回true

答案 1 :(得分:1)

  1. 起初,您不应该使用reverse!。此方法修改了word,但是您只需要获取修改后的结果。因此,您应该改用reverse
  2. 您的方法可以简化为:

    def palindrome?(word)
        word == word.reverse
    end
    
  3. "Stats"不是回文,除非您将其转换为较低或较高的寄存器:

    def palindrome?(word)
        word = word.downcase
        word == word.reverse
    end
    

测试最终版本的结果是:

puts palindrome?("Stats")
# => true