我只是對模式匹配及其相應的字節代碼做了一些調整。scala的字節碼中不必要的加載和存儲指令
val a = Array(1,2,3,4)
a.map {
case i => i + 1
}
對於上面的代碼中,我使用javap的,並得到了內部地圖annonymous功能的字節碼:
public int apply$mcII$sp(int);
Code:
0: iload_1
1: istore_2
2: iload_2
3: iconst_1
4: iadd
5: ireturn
所以,在我看來,在0線,我們推一個int(參數) ,然後在第1行中加載int,並在第2行中將其推回...此處的目的是什麼?
謝謝!
。似乎輸出是不一樣的... – darkjh
@darkjh古代歷史!我的2.9別名甚至不運行javap。我只注意到你的錯誤反思:當你調查某些東西時,結果與你所期望的相反。感謝那一個。 –