如何在 Ruby 变量参数中使用 "#{...}?
How to use in Ruby variable arguments with "#{...}?
我想要这样的方法:
def process(text, *parameters)
new_text = ...
end
调用函数的地方
process("#{a} is not #{b}", 1, 2)
导致 new_text
为 1 is not 2
并使用
调用函数
process("#{a} does not exist", 'x')
导致 new_text
为 x does not exist
。
或者使用替代方法而不是使用 "#{...}"
(例如#1、#2)来为填充了 in/substituted.
的参数传递字符串
你可以这样做:
def format(text, *args)
text % args
end
format("%s is not %s", 1, 2)
# => "1 is not 2"
format("%s does not exist", 'x')
# => "x does not exist"
见String#%
and Kernel#sprintf
因为上面的方法在内部使用了 String#%
直接使用 String#%
然后将其包装到另一个方法中实际上更短:
"%s is not %s" % [1, 2]
# => "1 is not 2"
"%s does not exist" % 'x'
# => "x does not exist"
注意本例中必须以数组的形式传入多个参数。
我想要这样的方法:
def process(text, *parameters)
new_text = ...
end
调用函数的地方
process("#{a} is not #{b}", 1, 2)
导致 new_text
为 1 is not 2
并使用
process("#{a} does not exist", 'x')
导致 new_text
为 x does not exist
。
或者使用替代方法而不是使用 "#{...}"
(例如#1、#2)来为填充了 in/substituted.
你可以这样做:
def format(text, *args)
text % args
end
format("%s is not %s", 1, 2)
# => "1 is not 2"
format("%s does not exist", 'x')
# => "x does not exist"
见String#%
and Kernel#sprintf
因为上面的方法在内部使用了 String#%
直接使用 String#%
然后将其包装到另一个方法中实际上更短:
"%s is not %s" % [1, 2]
# => "1 is not 2"
"%s does not exist" % 'x'
# => "x does not exist"
注意本例中必须以数组的形式传入多个参数。