一个Ruby类,用于比较两个字符串中的字符

时间:2015-11-06 08:44:18

标签: ruby string function class compare

我试图完成一个exercism.io测试文件,该文件比较两个字符串,并在每次两个字符串之间存在差异时将一个字符串添加到计数器中。我写了我的课,但由于某种原因,它不会在终端上运行。我已经将我的代码与几个在线语法示例进行了比较,并且不知道为什么它不会运行。任何帮助将不胜感激。

这是我的班级:

class Hamming
    def compute(str1, str2)
        distance = 0
        length = str1.length
        for i in 0..length
            if str1[i] != str2[i] then
                distance++
            end
        end
    return distance
    end
end

以下是测试文件的相关内容:

class HammingTest < Minitest::Test
  def test_identical_strands
    assert_equal 0, Hamming.compute('A', 'A')
  end
end

最后,这是我得到的错误:

hamming_test.rb:4:in `require_relative': /Users/Jack/exercism/ruby/hamming/hamming.rb:8: syntax error, unexpected keyword_end (SyntaxError)
/Users/Jack/exercism/ruby/hamming/hamming.rb:12: syntax error, unexpected end-of-input, expecting keyword_end
    from hamming_test.rb:4:in `<main>'

1 个答案:

答案 0 :(得分:1)

  1. then语句中的条件之后不需要if
  2. 在Ruby中使用两个空格而不是四个用于缩进。
  3. (错误的直接原因)Ruby中没有++运算符。你应该

    distance += 1