推 noctem:我知道有些 compiler 會在第一個 pass 先把 interface 的 07/14 15:07
→ noctem:相關資訊寫到一個檔案裡面,然後再做第二個 pass. 07/14 15:07
→ noctem:基本上都是要兩個 pass 囉..? 07/14 15:08
→ Schelfaniel:為什咩掃第二次時會出現新的型別?? 07/14 18:33
推 godfat:因為實作裡可能用到介面沒出現的型別? 07/14 20:17
→ godfat:所以掃型別時,可能要連實作都要掃,不能只看介面? 07/14 20:18
→ macbuntu:對, 譬如實作裡出現 Foo o; 宣告, 這個 Foo 就是新的 07/14 21:58
→ macbuntu:在所有型別介面沒確定前, 直接掃實做也不行, 譬如 07/14 22:01
→ macbuntu:X.Y.Z(); 就無法知道 Y 是 package 還是 field name, 07/14 22:02
→ macbuntu:得定義完 X 才能確定, 所以也沒辦法第一次就連實做掃 :( 07/14 22:04
→ Schelfaniel:可是型別不是會要事先宣告?? 07/15 11:04
→ Schelfaniel:Java 有 package 名稱建議小寫,大概就是怕混淆。 07/15 11:10
推 godfat:宣告也是在實作裡宣告,沒寫在介面上,至於 package... 07/15 11:42
→ godfat:我想這大概是為什麼 ActionScript 強迫你用 import 吧 :s 07/15 11:43