[分享] 另一個 Parallel Assignment 玩法
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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 8 篇):
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章