我的 Rubocop 进攻告诉我我需要“使用条件的返回值进行变量赋值和比较”
当我尝试修复它时,它让我又一次冒犯了我的“方法线太长”。
我试过重构为另一种方法,但我的代码坏了。
如何缩短或重构此代码?
HSH = { 'a' => 'z', 'b' => 'y', 'c' => 'x', 'd' => 'w', 'e' => 'v', \
'f' => 'u', 'g' => 't', 'h' => 's', \
'i' => 'r', 'j' => 'q', 'k' => 'p', 'l' => 'o', 'm' => 'n' }.freeze
def encoder(str)
encoded_string = ''
str.chars.each do |char|
encoded_string = if HSH.key?(char) then encoded_string += HSH[char]
elsif HSH.invert.key?(char) then encoded_string += HSH.invert[char]
else encoded_string += char
end
end
encoded_string
end
Run Code Online (Sandbox Code Playgroud)
当我运行我的测试套件时,一切正常。
但是rubocop进攻给了我方法线太长了。
没有哈希:
ALPHABET = ("a".."z").to_a.join
def encoder(str)
str.tr(ALPHABET, ALPHABET.reverse)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
869 次 |
| 最近记录: |