從 Hello World 開始

學一門編程語言的開始往往是一個最簡單的 Hello World 程序,我們的 Kotlin 學習也不例外:

fun main(args: Array<String>) {
   println("Hello World")}

我們來分析一下有意義的兩行代碼:

fun main(args: Array<String>){}

這行代碼用 fun 關鍵字定義了一個名爲 main 的函數,這個函數有一個 Array<String>(字符串數組) 類型的參數 args 。這句代碼與 Java 中聲明 main 函數的意義是一樣的:

public class HelloWorld{
 public static void main(String[] args){}}

我們再分析一下,Kotlin 與 Java 聲明 main 函數的方式不同之處:

  1. Kotlin 使用 fun 關鍵字顯式地聲明函數,Java 則通過方法名後的括號表明這是個方法;

  2. Kotlin 允許創建 包級函數,函數不一定在類裏面,Java 則要求所有方法必須包括在類裏;

  3. Kotlin 中所有變量、函數和類默認都是 public 的,Java 則需要用 public 關鍵字聲明處處可用;

  4. Kotlin 拋棄了靜態變量和靜態方法,沒有 static 關鍵字,Java 則用 static 關鍵字聲明靜態成員;

  5. Kotlin 中聲明一個函數沒有返回值使用 Unit 關鍵字,但是一般省略,Java 則用 void 關鍵字聲明無返回值;

  6. Kotlin 聲明函數參數列表採用“變量名: 變量類型”的方式,Java 則採用 “變量類型 變量名”的形式;

  7. Kotlin 拋棄了類 C 語言聲明數組的方式,使用 “Array<T>” 的方式聲明數組,Java 則採用類 C 語言的“T[]”方式聲明數組;

  8. Kotlin 語句結尾一般不使用分號 ; 結尾,Java 則必須用分號結尾。

第二行:

println("Hello World")

對比 Java:

System.out.println("Hello World");

好像 Kotlin 只是把 Java 的 “System.out”給省略了?我們看一下 Console.kt 文件中對 println() 函數的聲明:

@kotlin.internal.InlineOnlypublic inline fun println(message: Any?) {
   System.out.println(message)}

好吧,Kotlin 的 println() 函數就是對 Java 中 System.out.println() 方法的包裝……

讓我們運行程序,你的控制檯是不是輸出了 Hello World 呢?

作者:CNife
鏈接:https://zhuanlan.zhihu.com/p/26443813

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章