亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在這個Ruby代碼中,(一元)*操作符是做什么的?

在這個Ruby代碼中,(一元)*操作符是做什么的?

嚕嚕噠 2019-07-11 16:33:33
在這個Ruby代碼中,(一元)*操作符是做什么的?給定Ruby代碼line = "first_name=mickey;last_name=mouse;country=usa" record = Hash[*line.split(/=|;/)]我明白第二行的每一件事,除了*操作員-它在做什么,它的文檔在哪里?(你可能猜到,尋找這個案子很難.)
查看完整描述

3 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

Splat運算符解壓縮傳遞給函數的數組,以便將每個元素作為單獨的參數發送給函數。


一個簡單的例子:


>> def func(a, b, c)

>>   puts a, b, c

>> end

=> nil


>> func(1, 2, 3)  #we can call func with three parameters

1

2

3

=> nil


>> list = [1, 2, 3]

=> [1, 2, 3]


>> func(list) #We CAN'T call func with an array, even though it has three objects

ArgumentError: wrong number of arguments (1 for 3)

    from (irb):12:in 'func'

    from (irb):12


>> func(*list) #But we CAN call func with an unpacked array.

1

2

3

=> nil

就這樣!


查看完整回答
反對 回復 2019-07-11
  • 3 回答
  • 0 關注
  • 486 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號