2009-07-18 63 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