`*';:负参数(ArgumentError)Ruby
在Codewars IDE中运行此代码时,我一直会遇到此负面参数错误。它在终端中运行良好,但在代码战中,它通过了测试并同时运行此错误消息`*';:负参数(ArgumentError)Ruby,ruby,Ruby,在Codewars IDE中运行此代码时,我一直会遇到此负面参数错误。它在终端中运行良好,但在代码战中,它通过了测试并同时运行此错误消息 STDERR main.rb:5:in `*': negative argument (ArgumentError) from main.rb:5:in `maskify' from main.rb:9:in `<main>' 我是Ruby新手,但我从未听说过它在.slice中使用负数有问题。我是不是遗漏了什么?谢谢。您不考虑cc
STDERR
main.rb:5:in `*': negative argument (ArgumentError)
from main.rb:5:in `maskify'
from main.rb:9:in `<main>'
我是Ruby新手,但我从未听说过它在.slice中使用负数有问题。我是不是遗漏了什么?谢谢。您不考虑
cc
小于4个符号的情况
表达式“#”*(x.length-4)
会引发错误,因为不能将字符串乘以负数
尝试使用Array#max
方法来处理此问题:
“#”*[x.length-4,0]。最大值
它不是切片
。是的。从证据上看,cc.to_.length<4
。
def maskify(cc)
x = cc.to_s
y = "#" * (x.length - 4)
return y + x.slice(-4..-1)
end