【发布时间】:2013-05-09 08:52:07
【问题描述】:
使用 IRB,我测试了以下内容:
C:\Pickaxe>irb
irb(main):001:0> list_of_strings = %w{ a list of strings in an array }
=> ["a", "list", "of", "strings", "in", "an", "array"]
irb(main):002:0> a, b, c = list_of_strings
=> ["a", "list", "of", "strings", "in", "an", "array"]
irb(main):003:0> a
=> "a"
irb(main):004:0> b
=> "list"
irb(main):005:0> c
=> "of"
irb(main):006:0>
在我开发的其他语言中,设置a, b, c = d 将a、b 和c 的值全部设置为等于d。在这里,它们被设置为数组中的连续元素。
我不明白它是如何或为什么起作用的。有人能解释一下这个问题吗?
【问题讨论】:
-
看看this的回答。
-
啊,谢谢 Squiguy。有没有一种方法可以将 a、b 和 c 的值分配给整个数组,而不必在多行上执行?
-
你的意思是像
a = b = c = list_of_strings这样的东西吗? -
@squiguy:在 Ruby 中解构绑定的工作方式与在其他所有语言中的工作方式几乎完全相同。不知道这有什么不同。
-
@squiguy,“我的意思是这种语言总是吹嘘它‘对程序员有意义’。”Matz,说“The principle of least surprise means principle of least my surprise. And it means the principle of least surprise after you learn Ruby very well.”就个人而言,在许多其他语言之后,我发现 Ruby 当我停下来思考我在做什么时,要非常直观。作为人类,我有时不这样做,这让我感到惊讶。
标签: ruby-on-rails ruby arrays variable-assignment irb