[問題] 參數求值順序
如果有兩個 method 長這個樣子:
int foo(int a, int b);
int fun2();
而有另一個 method,有這樣的內容:
int fun1()
{
foo(fun1(), fun2());
}
這個 fun1 會不會變成無窮遞迴而導致 stack overflow
要看 fun1, fun2 哪個先被執行
但我有個疑惑,對 Java 而言,哪個會先執行呢?
在 spec 有明令規定,還是像 C++ 一樣,由 Compiler 自行決定呢?
我找過 google, 也找過 spec
但苦於不知道該找什麼關鍵字...orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.171.46
※ 編輯: james732 來自: 140.117.171.46 (05/13 15:46)
推
05/13 16:56, , 1F
05/13 16:56, 1F
謝謝版主的回覆,我實驗的結果是 fun1() 會先執行,也就是左而右執行
不過因為 C++ 是由 Compiler 規定,各家可能會有不同行為,因此讓我感到困惑
究竟是我用的 Java Compiler 剛好是從左而右執行
還是 Java 在 spec 裡有明確規定呢?
這是我的問題所在,沒有描述清楚,很不好意思
※ 編輯: james732 來自: 140.117.171.46 (05/13 17:12)
推
05/13 17:09, , 2F
05/13 17:09, 2F
→
05/13 17:19, , 3F
05/13 17:19, 3F
→
05/13 17:33, , 4F
05/13 17:33, 4F
推
05/13 17:36, , 5F
05/13 17:36, 5F
推
05/13 19:27, , 6F
05/13 19:27, 6F
推
05/13 22:41, , 7F
05/13 22:41, 7F
討論串 (同標題文章)
java 近期熱門文章
3
14
PTT數位生活區 即時熱門文章