2011-06-16 75 views
4

我周圍的維基百科閱讀關於一種稱爲'D'的編程語言,這是我第一次讀到它。有趣的主要方法

對於我來說,語法看起來與Java非常相似。 但最有趣的是當我看到他們的主要方法使用char [] []。

我打開了Eclipse和我嘗試這樣做:

public static void main(char [][] args){ 
} 

我很驚訝,當我看到它沒有語法錯誤的編譯,但是我不明白爲什麼。
有人可以向我解釋爲什麼這個對main方法的調用可以用Java編譯?

+0

實際上一個String是一個字符數組,所以一個字符數組的數組是一個字符串數組。你可以在D:alias char [] string;中定義一個別名,所以它會在你的main方法中是string [],這實際上是char [] [] – 2011-06-16 15:24:30

回答

11

正如你所寫的是有效的Java語法(靜態無效方法,名稱爲main,參數爲二維char數組),它將進行編譯。但問題是,這種主要方法不能作爲Java程序的入口點,因爲它必須具有簽名:public static void main(String[] args)

+0

我明白了。我認爲還有其他的選擇。我認爲自從JSE6以來,這個新的變量叫做可變參數,也可以做類似的事情。 main(String ... args),我認爲也可以編譯但不能運行。 – sfrj 2011-06-16 23:53:46

0

dcn,是正確的,它是一個名爲main的有效方法。但不能用於啓動Java應用程序。

爲了進一步擴大,有一定的靈活性,在簽名:

可以使用任何變量名,而不僅僅是args

public static void main(String[] whateverNameYouWant) { 

} 

變量必須是一個字符串數組,但你可以聲明在任何有效的Java語法,就像這樣:

public static void main(String args[]) { 

} 

正如邁克爾Krussel指出的那樣,你也可以使用可變參數:

public static void main(String... args) { 

} 
+1

你也可以使用varargs main(String ... args) – 2011-06-16 16:25:38