Re: [問題] block和array的傳遞

看板Ruby作者 (←這人是超級笨蛋)時間11年前 (2013/06/21 10:00), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《lemonstar ( )》之銘言: : 在function中傳遞參數時 : 傳遞array是使用 "*" 符號 : def f( a , *arg ) : end 這個應該是從 Python 抄來的, 我目前沒看過有比這個更早的來源 Python 可以有這種語法 def foo(*args, **kwargs): print args[2], kwargs['b] a = [1, 2, 3] b = {'a': 'A', 'b': 'B'} foo(*a, **b) # 3 B 至於為什麼選 * 就沒有定論了 主流猜測應該是從 C 的 dereference operator 來的沒錯 : 傳遞block是使用 "&" 符號 : def f( a , opts={} , &block ) : end 這個應該是 Ruby 特有的, 來源或許就是因為有 * 所以想到用 & 吧 : 這兩個operator設計有什麼緣由嗎 ? : 一直在想是不是跟 C 的 pointer 以及 reference 有關 ? : 還是完全沒有關係 ?? -- "問おう、貴方が私のマスターか?" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.81.146
文章代碼(AID): #1HmxEtN1 (Ruby)
討論串 (同標題文章)
文章代碼(AID): #1HmxEtN1 (Ruby)