2014-06-30 28 views
2

在CoffeeScript中我可以這樣做:Oneliner協會在Ruby中

[one..., two] = [1, 2, 3, 4, 5] 
# one = [1, 2, 3, 4] 
# two = 5 

有沒有辦法在Ruby中做到這一點(oneliner)?

編輯

我知道我能做到這一點:

one = [1, 2, 3, 4, 5] 
two = one.slice!(-1) 

EDIT 2

Oneliner看起來是這樣的:

two = (one = [1, 2, 3, 4, 5]).slice!(-1) 

但看到ms對我來說太醜陋了。

+0

一些更多的解釋這是否意味着'one'是所有變量n-1個? – dax

+0

是的,我編輯的問題更清楚。 –

回答

4

這應做到:

*one, two = [1, 2, 3, 4, 5] 
one 
# => [1, 2, 3, 4] 
two 
# => 5 

你可以看到splatarray destructuringhere

+0

謝謝,接受,因爲這個答案包含更多解釋 –

2
irb(main):001:0> a = [1,2,3,4,5] 
=> [1, 2, 3, 4, 5] 
irb(main):002:0> *one, two = a 
=> [1, 2, 3, 4, 5] 
irb(main):003:0> one 
=> [1, 2, 3, 4] 
irb(main):004:0> two 
=> 5 
+0

:)謝謝你們......現在我不知道誰應該接受我的答案...兩者相同,幾乎在同一時間 –