Ruby 中賦值和函式引數傳遞的區別

2022-05-08 11:15:07 字數 505 閱讀 9418

technorati 標籤: ruby,賦值,引數

a,b=[2,3]

puts a,b

輸出:

# 2# 3

a,b=5,2=>3 #出錯

賦值不支援散hash:2=>3 ,因該用正規的hash:

def f (a,b)

puts a,b;

end

f([2,3]) # 出錯

f(*[2,3])

輸出:

# 2# 3

def k (a={},*b)

puts a.inspect,b.inspect;

end

k(5,2=>3,1=>2])

輸出: 5

k(1=>3)

輸出:

函式呼叫中,最右邊的散hash(2=>3,1=>2 就是散hash)會被當成乙個引數。

函式定義中,最右邊的*b,是取呼叫者中的剩餘引數(這些引數放到乙個b陣列中); 如果沒有剩餘引數,那麼b 為

JS中函式引數值傳遞和引用傳遞

也許大家對於函式的引數都不會太在意,簡單來說,把函式外部的值複製給函式內部的引數,就和把值從乙個變數複製到另乙個變數一樣。深入研究,你會發現其實沒那麼簡單,這個傳參是要分倆種情況 其實這是個錯誤的說法,ecmascript中所有函式的引數都是按值傳遞的 高程3 原話,之所以這裡說倆種,是因為結合引用...

JS中函式引數值傳遞和引用傳遞

自 1 按值傳遞 1 function addten num 5 6 var count 20 7 var result addten count 按值傳遞 num count 8 alert count 20,沒變化 9 alert result 30 很好理解,因為是按值傳遞的,傳遞完後倆個變數...

JavaScript中函式引數的值傳遞和引用傳遞

結論 對於數字 字串等是將它們的值傳遞給了函式引數,函式引數的改變不會影響函式外部的變數。對於陣列和物件等是將物件 陣列 的變數的值傳遞給了函式引數,這個變數儲存的指向物件 陣列 的位址。當函式改變這個位址指向的物件 陣列 的內容時,同時也改變了函式外部變數指向的物件 陣列 的內容 當函式改變的是變...