我对这行ruby代码很困惑。 为什么赋值给x,y而不是单个变量?
x,y = gets.split.map &:to_i
答案 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,其中提供了更多详细信息,并且是一个很有用的示例。