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