Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby与打印格式的区别_Ruby - Fatal编程技术网

Ruby与打印格式的区别

Ruby与打印格式的区别,ruby,Ruby,我开始学习Ruby,我正在使用print,我发现它可以使用两种字符串格式: 打印“#{var}” 打印“%r%d%r”%[var1,var2,var3] 当然,其中一个区别是,在第一个示例中,您不需要输入要传递的参数类型,但我真正想知道的是,其中哪一个更适合Ruby以及您可以给我的一些其他提示 谢谢。大多数人使用前一种方法,因为它会自动调用对象的.to\u s方法来显示值。您可以通过重写类的.to\s方法使其显示您想要的任何内容来利用它 坦白地说,我从来没有在我看过的任何代码中使用过第二种方法。

我开始学习Ruby,我正在使用
print
,我发现它可以使用两种字符串格式:

  • 打印“#{var}”
  • 打印“%r%d%r”%[var1,var2,var3]
  • 当然,其中一个区别是,在第一个示例中,您不需要输入要传递的参数类型,但我真正想知道的是,其中哪一个更适合Ruby以及您可以给我的一些其他提示


    谢谢。

    大多数人使用前一种方法,因为它会自动调用对象的
    .to\u s
    方法来显示值。您可以通过重写类的
    .to\s
    方法使其显示您想要的任何内容来利用它


    坦白地说,我从来没有在我看过的任何代码中使用过第二种方法。

    第二种方法是经典的C
    printf
    风格,在处理数字时非常有用,其中
    %d
    %.1f
    通常用于以简洁易读的格式呈现浮点值。“printf”或“sprintf”格式对于任何格式化的输出、专栏报告都非常有用。我经常在输出带编号的结果时使用它。我遇到了其中的第二种方法,用于添加前导零。第一种方法不是格式化,而是将变量插入字符串,在您的示例中,这是对CPU周期的浪费,因为
    print var
    可以完成相同的任务,只是更快。