Re: [問題] 請教一個基本的問題
※ 引述《Lordaeron (Terry)》之銘言:
: ※ 引述《adrianshum (Alien)》之銘言:
: : [43]
: : 推文等太久,乾脆回文。
: : 把它理解為 "obj 就是 call by ref" ,包準你會
: : 在另一種情況下搞混。
: : 例如:
: : void foo(String a) {
: : a += "foo";
: : }
: : String x = "xxx";
: : foo(x);
: : // x 的結果是什麼?
: : 很不幸,把東西說成 "物件就是 call by ref"
: : 對這種情況十居其九都會搞錯
: : 何不好好理解一下 Java 自己的說法: Java 只有 pass-by-value.
: : object 傳的是 reference (或者理解為 handle, pointer etc) 的
: : copy. 只為這個 copy 和原本的 reference 都是指向同一 object,
: : 所以修改 obj 的內容,caller 也會看得到.
: 都沒有定義以下的東西, 就在討論了? 這麼神奇?
: 給個定義吧:
: 什麼是reference?
: 什麼是value?
: 什麼是call by value?
: 什麼是call by reference?
http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_value
http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_reference
而 value 及 reference 兩個單字在 java 裡的意思, 和
pass-by-value & pass-by-reference 並無直接關係, 請
不要混淆視聽
btw, 這些定義, google 一下就找得到了, 你不
要每次都伸手牌要人找給你好嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.238.156.189
※ 編輯: adrianshum 來自: 61.238.156.189 (03/01 18:36)
※ 編輯: adrianshum 來自: 61.238.156.189 (03/01 19:22)
推
03/01 21:00, , 1F
03/01 21:00, 1F
→
03/02 10:29, , 2F
03/02 10:29, 2F
討論串 (同標題文章)