【问题标题】:Add line break/new line in IRB?在 IRB 中添加换行符/新行?
【发布时间】:2017-04-19 18:27:50
【问题描述】:

如何在 IRB/Ruby 中添加换行符/换行符?我正在学习的书显示了以下代码:

print "2+3 is equal to "
print 2 + 3

不告诉如何在不按Enter的情况下转到第二行,这显然只是运行程序。

【问题讨论】:

  • 你的问题毫无意义。 IRB 是一个 repl,它意味着一次运行每一行。尝试“同时”运行这两条线是没有理由/意义的。如果你想运行一个完整的脚本,把它放在一个文件中并ruby <file>,不要使用 IRB。
  • 您可以使用分号; 链接您的语句。您也可以将其插入为print "2+3 is equal to #{2+3}"
  • 分号不会“链接”语句,它们让它们写在同一行,但它们仍然是单独的语句。而且,虽然我们可以使用分号,但它们不是惯用的,它们会导致代码写得不清楚。

标签: ruby irb


【解决方案1】:

您可以在这样的语句末尾使用分号puts "hello";puts"world"

【讨论】:

    【解决方案2】:

    那本书可能会采取非常小的步骤来介绍这个想法:

    print "Continues..."
    puts "(Up to here)"
    

    print 函数只是将给出的内容准确地输出到终端。 puts 函数的作用相同,但还添加了一个换行符,这正是您想要的。

    更多的 Ruby 方法是:

    puts "2+3 equals #{2+3}" # Using string interpolation
    puts "2+3 equals %d" % (2 + 3) # Using sprintf-style interpolation
    

    现在,如果您使用 irb,这是一个读取-评估-打印-循环 (REPL),这意味着它会在您按 Enter 键后立即执行您输入的所有内容,这是设计的。如果你想使用你的原始代码,你需要强制一行:

    print "2+3 equals "; print 2+3
    

    那么这将按预期工作。 ; 行分隔符在 Ruby 中很少使用,大多数样式指南都鼓励您将内容拆分为多行,但如果您确实需要使用单行分隔符,这就是方法。

    在写入代码时,比如.rb 文件,返回键仅用于格式化,不执行任何代码。

    【讨论】:

    • 在第二次阅读时,我意识到我对此读了太多,这是本书实际上并不想让我写在 irb 中的一个例子,因为它没有 @987654330 @符号在它前面。哇。谢谢!
    • "but also added a newline" 可能应该是“但如果输出还没有以换行符结尾,也有条件地添加一个换行符”
    • printputs 也接受多个参数,因此 print 'hello', 2+3 #=> hello5puts 类似。
    【解决方案3】:

    你可以在第一行后面加一个分号,像这样:

    print "2+3 is equal to ";
    print 2 + 3
    

    【讨论】:

    • 这不是 Ruby 的方式。如果这两行是单独的行,则应不加分号。
    猜你喜欢
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    相关资源
    最近更新 更多