2009-07-18 88 views
2

我認爲答案很簡單,「不,你不能那樣做」,但是我的想法對Ruby來說總是錯誤的。並行作業和範圍

我試圖做到這一點在Ruby中

city, state, zip = (0..2) 

這導致城市是一個範圍其餘均爲零,這不是我想要的。有沒有辦法做到這一點?

回答

8

隨着圖示操作

city, state, zip = *(0..2) 

隨着轉換成數組

city, state, zip = (0..2).to_a 
+0

完美,謝謝! – 2009-07-18 11:55:28

+0

那麼splat和to_a有什麼區別?至少在這種情況下,結果總是一個數組。 – 2009-07-18 12:18:01

+0

在這種情況下沒有區別。實際上,splat操作符實質上將Enumerable替換爲其組成元素。所以如果你寫'[* [1,2],* [3],4]',結果是'[1,2,3,4]'。 – Chuck 2009-07-18 19:11:47

6

city, state, zip = *(0..2) 
+0

噢,我從來沒有想過用圖示運營商分配的... – guns 2009-07-18 11:06:26

+0

+1,謝謝Dario ... – 2009-07-18 17:57:40