gpt4 book ai didi

ruby-on-rails - 使用带有 %s 和 % 以及多个字符串替换参数的 print 而不是 sprintf

转载 作者:太空宇宙 更新时间:2023-11-03 17:28:23 24 4
gpt4 key购买 nike

在以下 ruby​​ 代码中,输出变为:“x y”

x = "x %s"
y = "y"
z = "z"
print x % y %z

%z 被忽略。

我希望输出为“x y z”。

要了解 Ruby 语法的可能性和局限性,我只想使用 print 命令以及 %s 和 % 标志。我知道如何使用 sprintf 执行此操作,但我想知道是否有一种方法可以仅使用“打印”命令来执行此操作。

所以我尝试在变量“x”的定义中添加第二个 %s:

x = "x %s %s"
y = "y"
z = "z"
print x % y %z

但是我得到了这个错误:

in `%': too few arguments (ArgumentError)

使用 sprintf 你可以这样做:

x = "x %s %s"
y = "y"
z = "z"
print (sprintf(x, y, z))

输出就是我想要的:

x y z

但这太容易了。

有没有办法只使用“print”(不是 sprintf)而不使用 #{} 或将 y 和 z 组合成一个数组 [y,z]?

最佳答案

我其实不明白你想做什么,但是:

irb(main):001:0> x = "x %s"
=> "x %s"
irb(main):002:0> y = "y %s"
=> "y %s"
irb(main):003:0> z = "z"
=> "z"
irb(main):004:0> print x % y % z
x y z=> nil

和:

irb(main):006:0> x = "x %s %s"
=> "x %s %s"
irb(main):007:0> y = "y"
=> "y"
irb(main):008:0> z = "z"
=> "z"
irb(main):009:0> x % [y,z]
=> "x y z"

关于ruby-on-rails - 使用带有 %s 和 % 以及多个字符串替换参数的 print 而不是 sprintf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/542787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com