Ruby同时读取2个整数
我想同时读取Ruby同时读取2个整数,ruby,Ruby,我想同时读取STDIN中一行中的两个整数。 我尝试过这样的模式匹配: [a, b] = gets.split.map(&:to_i) 然而,这失败了: solution.rb:7: syntax error, unexpected '=', expecting keyword_end [a, b] = gets.split.map(&:to_i) 如何从同一行读取两个整数(最好但不一定同时读取)?您需要删除左侧的括号: a, b = gets.split.map(&a
STDIN
中一行中的两个整数。
我尝试过这样的模式匹配:
[a, b] = gets.split.map(&:to_i)
然而,这失败了:
solution.rb:7: syntax error, unexpected '=', expecting keyword_end
[a, b] = gets.split.map(&:to_i)
如何从同一行读取两个整数(最好但不一定同时读取)?您需要删除左侧的括号:
a, b = gets.split.map(&:to_i)
使用splat运算符最好是安全的
a, b, * = gets.split.map(&:to_i)
关于splat运营商的更多信息,我在上写了一篇博客,顺便说一句,这不是模式匹配。为什么不呢
gets.split.map(&:to_i)
返回一个数组,然后在结果中匹配a
和b
。这不是模式匹配吗?@octavian这是Ruby,不是:-)OP希望b
是整数,而不是数组。如果您担心原始行上可能有两个以上的数字,那么您应该执行a,b,*=…
@sawa谢谢您让我更正。我想现在好了。