我正在使用rspec示例测试第一个ruby…
我需要通过这次考试。
it "tokenizes a string" do
calculator.tokens("1 2 3 * + 4 5 - /").should ==
[1, 2, 3, :*, :+, 4, 5, :-, :/]
end
这是我的密码
def tokens(str)
data = str.split(' ')
outcomes = []
data.collect do |x|
if x.to_i != 0
outcomes.push(x.to_i)
elsif x.to_i == 0
temp = x.gsub('"', '')
outcomes.push(":#{temp}")
end
end
outcomes
end
但是,我得到了这些反馈。不知道如何去掉引号。
Failure/Error: [1, 2, 3, :*, :+, 4, 5, :-, :/]
expected: [1, 2, 3, :*, :+, 4, 5, :-, :/]
got: [1, 2, 3, ":*", ":+", 4, 5, ":-", ":/"] (using ==)
最佳答案
试试这个:
outcomes.push(:"#{temp}")
":#{temp}"
是字符串,但这是带字符串插值的:"#{temp}"
符号。=>:"+".class
#> Symbol
=> ":+".class
#> String