【问题标题】:Why are all my puts returning =>nil?为什么我所有的看跌期权都返回=>nil?
【发布时间】:2013-01-22 08:59:46
【问题描述】:

我知道这似乎是一个非常简单的问题,但我的 put 不断生成“=> nil”确实让我很困扰,我寻找答案但找不到答案。谢谢。

放'眨眼' *4 眨眼 眨眼 眨眼 眨眼 => 无

【问题讨论】:

    标签: ruby null puts


    【解决方案1】:

    因为那是puts的返回值:

    puts(obj, ...) → 无

    像使用 IO#print 一样将给定的对象写入 ios。 写一个记录分隔符(通常是换行符)后任何不 已经以换行符序列结束。如果使用数组参数调用, 将每个元素写入新行。如果不带参数调用, 输出单个记录分隔符。

    来源:http://www.ruby-doc.org/core-1.9.3/IO.html#method-i-puts

    另外,我假设这只是在irb?因为在普通应用中调用puts不会显示其返回值。

    【讨论】:

    • 我要补充一点,ruby 中的每条指令都会返回一些东西。每个方法,属性,声明(类,方法)。在 irb 中,这就是您所看到的,返回值(或评估)。所以返回任何东西没有意义的方法只是返回 nil
    • 谢谢。这对我很有帮助。你是对的,我用的是irb。我觉得在普通应用程序中编程会更好。我是新手,你认为你能详细说明吗?
    • irb 可以编程,我只是要指出,在irb 之外的任何 ruby​​ 程序中,除非您专门检查返回值,否则它不会显示给您。
    【解决方案2】:

    您可能希望使用p 而不是puts。

    p 打印然后返回值。

    【讨论】:

      【解决方案3】:

      Hunter McMillen 的回答是正确的。

      但是,如果您想要一个实际返回非零值的 puts 替换,我创建了 a gem called reputs

      reputs 'blink ' *4
      blink blink blink blink
      => "blink blink blink blink "
      

      【讨论】:

        猜你喜欢
        • 2018-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-24
        • 1970-01-01
        • 1970-01-01
        • 2022-07-05
        • 1970-01-01
        相关资源
        最近更新 更多