我想将控制台上打印的内容指定为代码中下一行中变量的值。 这可以用$ stdout吗?
比方说,我在控制台上打印一个解压缩的数组值。
现在我想使用这个打印值作为我的代码下一行的变量值。
例如puts "\nPageSize:\n#{c1}\n"
打印7117这是一个单个元素数组。现在我想将此打印值作为整数分配给此puts "\nPageSize:\n#{c1}\n"
下面的下一行代码中的某个变量x。
答案 0 :(得分:0)
在IRB中,您可以使用特殊的下划线变量来获取最后一个表达式的结果:
> 2 + 2
> x = _
> 4
但是由于'puts'返回nil,它将无效。如果你避免看跌期权,那么它就可以了。
答案 1 :(得分:0)
你通常无法回读你写给stdout的内容。您可以猴子补丁puts
或IO
来实现这一点 - 但我想这不是您想要做的。
如果您可以打印该值,您也可以将其分配给变量(实际上它已存储在c1[0]
中):
puts "\nPageSize:\n#{c1}\n"
x = c1[0] # or c1.first
或更好
x = c1[0] # or c1.first
puts "\nPageSize:\n#{x}\n"
插值字符串中#{c1}
部分的作用是调用c1
' to_s
将其转换为String
并插入String
}。因此,它会将[7117]
转换为"7117"
。
答案 2 :(得分:-1)
您可以像这样分配...........
首先使用整数
的intilize变量 x = 0
然后分配为
x = c1
or
x = arr[0]
或者你想要.........
但是put什么都不返回,所以你不能将打印值分配给某个变量。比你还要
使用某个变量并将其值分配给另一个变量。