iT邦幫忙

2022 iThome 鐵人賽

DAY 12
1
Mobile Development

新手向Android&Kotlin學習紀錄30天系列 第 12

第12天 Kotlin 小學堂(1) : Hello World!

  • 分享至 

  • xImage
  •  

講了這麼多天UI的部分,是該來換換口味了。雞排不切不加辣

Google從2019年I/O大會開始力推Kotlin為Android為主要開發語言。官方給的理由:

  • 表現力和簡潔:您可以事半功倍。表達您的想法並減少樣板代碼的數量。67% 的使用 Kotlin 的專業開發人員表示 Kotlin 提高了他們的生產力。
  • 更安全的代碼: Kotlin 有許多語言特性可以幫助您避免常見的編程錯誤,例如空指針異常。包含 Kotlin 代碼的 Android 應用程序崩潰的可能性降低了 20%。
  • 可互操作:從 Kotlin 調用基於 Java 的代碼,或從基於 Java 的代碼調用 Kotlin。Kotlin 與 Java 編程語言 100% 可互操作,因此您可以在項目中使用盡可能少或盡可能多的 Kotlin。
  • 結構化並發: Kotlin 協程使異步代碼與阻塞代碼一樣易於使用。協程極大地簡化了從網絡調用到訪問本地數據的所有後台任務管理。
    上面看不懂正常,日後邊學邊用,慢慢就知道他在講什麼了。
    如果沒有任何程式語言基礎的話,Kotlin也是一個相對好上手的語言,不會讓人從入門到放棄只有門檻的距離 ^^...。
    總之,先一起來學學kotlin吧。

練習Kotlin語法的工具

當然可以使用android studio新建一個kotlin檔來練習。
或是還有其他選擇:
下載: IntelliJ IDEA Community版本就行了,免費又好用。
線上 : Kotlin官方網站,線上就可以玩,不想下載東西的話,缺點是少了IDE的智慧提示。官網也提供豐富的學習文檔、部落格資源。

如果使用IntelliJ IDEA如何新增一個專案跟建立kotlin檔案呢?就留給大家搜尋囉,正確快速的搜尋到答案,也是工程師必備基本求生技啊~
下面我都使用IntelliJ IDEA,因為創一個專案比android studio輕量些。

Hello World!

不免俗,第一堂一定要來個"哈囉,世界"
無論你第一個kotlin檔叫什麼名字,在空白處,不要放在任何{}內,我們先輸入:

fun main(){
    println("Hello world!")
}
  • fun 是function函數的意思。
  • main 是這個function的名稱,名稱使用小駝峰寫法,取名最好可以表達這個function會做的事。Kotlin語言來說,main funtion有特別意義,它是一個應用程式入口
  • ( ) 是定義傳入這個function的參數的地方,空的就表示沒有需要參數傳入。
  • { } 花括號之間呢,是我們希望這個 main function 做的事。
  • println() 可以想成是個kotlin已經寫好給我們用的function。用途如字面上,print印出,ln是line的意思,所以println是印出參數內容後自動換行。上面有說小括號間是傳入參數的地方,所以這裡就是把我們要印出的字句當參數傳入println(),就可以在控制台(執行工具視窗)印出囉!
    註:另外有 print(),一樣是印出內容,但是最後一行不會自動換行。
  • "Hello world!" 是String(字串)類型,內容使用雙引號(" ")前後包住,在 Kotlin 語言中,就是 String 類型。
  • 綠三角形就是執行main funtion的意思
  • 下半部兩個視窗,左邊就是控制台,會顯示所有intelliJ執行這個應用程式時產生的各種訊息(包還應用程式本身的輸出),而右邊是日誌工具,顯示intelliJ為了執行這個應用程式做的工作。

按下綠三角Run下去吧! 在控制台應該就會看到: Hello World!囉,現在可以保留兩側的雙引號(""),試著把Hello World替換成其他任何你想印出在控制台的字句看看,再次運行看看吧!

花生省魔術?

我知道,是個老笑話。

按下綠三角執行主程式到控制台顯示出發生了甚麼事?
簡單但不非常精確的說,是編譯器將我們打的程式碼編譯或轉譯成Java位元組,在JVM(Java虛擬機)上執行,然後就在控制台輸出了~
耶~ 是不是每個字都看得懂,但是看完一整句又想說:「阿鬼,你還是說國語吧?!」
為什麼kotlin用Java虛擬機?
JVM本質上是個軟體,它只關心,給的文件合乎它的規格就能被識別並執行,所以它並不在乎是從Java或Kotlin編譯或轉譯來的~

總之,JVM搭起了kotlin語言與不同軟硬平台(如:Window平台、macOs平台)的橋樑,讓我們可以在不同平台上編寫程式碼,再編譯成位元組,並在不同的設備上執行。
這些底層的知識不了解也不影響我們目前的coding,現階段有個概念就行了~

參考書目 : kotlin權威2.0

打家 明天見~


上一篇
第11天 ConstraintLayout 詳細介紹(四) : Flow、ImageFilterView、ImageFliterButton
下一篇
第13天 Kotlin小學堂(2) : 變數、基本資料類型
系列文
新手向Android&Kotlin學習紀錄30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言