Ruby x,y = gets.split.map&:to_i

时间:2015-03-16 23:36:14

标签: ruby

我对这行ruby代码很困惑。 为什么赋值给x,y而不是单个变量?

x,y = gets.split.map &:to_i

1 个答案:

答案 0 :(得分:1)

这会将数组中的第一个条目分配给x,将第二个条目分配给y,而不是分配给单个变量,在这种情况下,数组将分配给该变量。

在赋值的左侧放置多个变量是将数组解包为单独变量的一种方法。你可以在irb中试试这个:

irb(main):001:0> numbers = [1, 2, 3]
=> [1, 2, 3]
irb(main):002:0> first, second = numbers
=> [1, 2, 3]
irb(main):003:0> first
=> 1
irb(main):004:0> second
=> 2

查看我写的this answer to an older question,其中提供了更多详细信息,并且是一个很有用的示例。