В ruby вы можете сделать это:
d = [1, 2, 3]
a, b, c = d
a
, b
и c
получат значения 1, 2 и 3 соответственно.
d
, в этом случае в Array
и ruby знает, как присвоить его содержимое a
, b
и c
. Но, если бы d
было, например, Fixnum
, только a
было бы присвоено значению d
, тогда как b
и c
было бы присвоено nil
.
Какие свойства d
позволяют использовать его для множественного присваивания? В моем исследовании до сих пор я только мог заставить экземпляры подклассов Array
вести себя таким образом.