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))