Ruby 如何将变量设置为if条件

Ruby 如何将变量设置为if条件,ruby,Ruby,我有这种情况: arr1=[1,2,3,4] arr1.每个do | num| 如果num==arr1.last 打印“#{num}\n” 出口 其他的 打印“#{num}x” 结束 结束 我必须把它打印成一个变量,可能叫做num_printer,这样如果我写 put num\u打印机 它应该打印这个 1x2x3x4 但我不知道怎么做。 有人能帮我吗?基本上,您希望在元素之间插入一些东西(在您的例子中是“x”)并输出结果。使用 puts arr1.join('x') 正如Maxim在回答中

我有这种情况:

arr1=[1,2,3,4]
arr1.每个do | num|
如果num==arr1.last
打印“#{num}\n”
出口
其他的
打印“#{num}x”
结束
结束
我必须把它打印成一个变量,可能叫做num_printer,这样如果我写

put num\u打印机
它应该打印这个

1x2x3x4
但我不知道怎么做。
有人能帮我吗?

基本上,您希望在元素之间插入一些东西(在您的例子中是“x”)并输出结果。使用

puts arr1.join('x')

正如Maxim在回答中指出的那样,有更简单的方法来实现这一点,但要回答您的问题,您可以通过初始化空字符串变量,然后在
中的每个
块中向变量追加文本而不是打印它来实现:

arr1 = [1, 2, 3, 4]
nums_str = ""

arr1.each do |num|
  if num == arr1.last
    nums_str << num.to_s
  else
    nums_str << "#{num} x "
  end
end

puts nums_str
# => 1 x 2 x 3 x 4
arr1=[1,2,3,4]
nums_str=“”
arr1.每个do | num|
如果num==arr1.last

nums_str我看不到定义的
num_printer
方法…“可能被称为num_printer”@orde…
arr1.最后一个
是可疑的-如果在最后一个之前还有4个呢?@steenslag我同意,但这是OP的问题。