作者giive (lala)
看板Ruby
标题[分享] 另一个 Parallel Assignment 玩法
时间Wed May 24 09:26:57 2006
Parallel Assignment 也算 Ruby 一个很有趣的表达方式
今天在看 Programming Ruby 的时候
发现他有新的玩法
def returnParallel
return 1 , "haha"
end
num , s = returnParallel()
看 return 不只能回传一个 variable
他还可以回传 Parallel Variable
并且 Receiver 可以 Parallel 去接回传值
如果在 JAVA 的话
我如果要回传多个值
我会采取 new 一个 Object contain 所有的回传值
然後再将这个 Object 回传回去
比如像是这样
public returnObject lala(){
returnObject obj = new returnObject();
obj.setNumber(1);
obj.setString("haha");
return obj;
}
returnObject recObj = lala();
num = recObj.getNumber() ;
s = recObj.getString() ;
当然实做方式也不难
但是跟Ruby的方式比起来,略嫌罗唆了点
至於 Ruby 是怎麽实做这种特异功能的?
def returnParallel
return 1 , "haha"
end
lala = returnParallel()
puts lala.class
结果出现
Array
所以答案很明显了
Ruby只不过是 return prarllel 时,将 return值转成 Array
其实他还是只回传一个 Array Object
并没有使用崭新的设计
但是就算是这样
也远远的比其他 Language 来得方便跟简洁
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.70.178.127