Ruby(硬方法)Ex48-为什么赢了';t此整数(参数).to_s=>&引用;字符串“;?
我试过使用Ruby(硬方法)Ex48-为什么赢了';t此整数(参数).to_s=>&引用;字符串“;?,ruby,Ruby,我试过使用Integer(word),这在irb=>1234中是可以理解的,但是当iI程序num=word.to s或Integer(word)时,它仍然输出一个整数 我在测试中看到了差异,但输入并不重要,对吗 所有整数都应作为字符串输出 为什么会这样 我怎样才能修好它 在上下文中,我正在尝试完成此练习 我的代码 终点站 在该区块中: Integer(word).to_s Pair.new(:number, num) 您引用了一个变量num,该
Integer(word)
,这在irb
=>1234
中是可以理解的,但是当iI程序num=word.to s
或Integer(word)时,它仍然输出一个整数
我在测试中看到了差异,但输入并不重要,对吗
所有整数都应作为字符串输出
为什么会这样李>
我怎样才能修好它
在上下文中,我正在尝试完成此练习
我的代码
终点站
在该区块中:
Integer(word).to_s
Pair.new(:number, num)
您引用了一个变量num
,该变量未在粘贴的代码中声明。似乎你没有测试你认为你在测试的东西
然而,失败是:
<[#<struct Lexicon::Pair token=:number, key="1234">]> expected but was
<[#<struct Lexicon::Pair token=:number, key=1234>]>.
…正在查找@@lexicon.scan(“1234”)
的结果为[Pair.new(:number,1234)]
。这就是要转换的预期
和实际
参数
因此,您返回的是字符串(“1234”)
,而实际需要的是整数(1234)
因此,简而言之,您的区块需要:
Pair.new(:number, Integer(word))
…而且你的测试应该都通过。@JayBobo:不是你的代码有误导性,中的代码的参数是反向的。我明白,知道我的想法是正确的,我感觉好多了,哈哈。我的意思是在Pair的新实例中不包括param这个词。再次感谢。
Integer(word).to_s
Pair.new(:number, num)
<[#<struct Lexicon::Pair token=:number, key="1234">]> expected but was
<[#<struct Lexicon::Pair token=:number, key=1234>]>.
assert_equal(@@lexicon.scan("1234"), [Pair.new(:number, 1234)])
Pair.new(:number, Integer(word))