今天的課程將使用 https://try.kotlinlang.org/ 進行 Kotlin 程式語法的學習,透過線上版的 IDE 可以快速的呈現程式執行結果,讀者也不需再另外安裝應用程式,同時也可先將版面設計、文字資源管理的工作暫時放到一邊,讓我們先專注在 Kotlin 上吧!
此外在接下來的語言學習章節,若作者在內容中有提到與其他語言的不同,此時比對的對象為 C# 與 JavaScript,並不表示所有的語言喔。作者採用圖片的方式呈現程式碼,目的是希望各位可以實際動手將程式碼寫一遍,加深印象。
首先要介紹的是變數的宣告方式,有兩種 var 與 val,簡單的分別就是 var 可變,在程式中能不斷的賦予新值,而 val 則為唯讀,僅能賦予一次值,之後就僅能讀取無法改變,所以在進行程式設計時應考量一下變數的使用方式,給予適當的宣告,否則 IDE 會不斷的提醒你轉換使用正確的宣告。
在進行變數宣告時,可以選擇指定型態或自動宣告,指定型態時只需定義型態不需給予預設值,相反的自動宣告就必須在一開始給予預設值,才有辦法自動判斷型態,正確的使用方式如左圖所示。在右圖示範了如果最初宣告 a 為 Int 但程式中不小心給予了文字字串時會發生型態錯誤,另外則是 b 並沒有給予初始值,因此編譯器沒辦法自動判斷型態所發生的錯誤。
以下列出基本資料型別,特別用指定型態 b1 標示出自動轉換 b2 的型態,同時也標示出正負值範圍,在 Long 時會有個奇怪的點,在 C# 中是可以直接宣告到 -922...808,但 Kotlin 會出現錯誤,最多只能直接到 -922...807 再另外下運算式去減 1,這點就做個記錄,另外要宣告 Long 時記得於結尾加上 L 表達為長整數,同時可以使用底線來做數字分位,有利於閱讀。宣告浮點數若無指定 f 則預設會是 Double,字元賦予值使用單引號,字串使用雙引號。
不同型別之間的轉換使用前綴詞 to 搭配型態,如:toString()、toInt()、toDouble()、toBoolean()
...等等,轉換的使用必須在該型態有提供相關轉換方法的前提下才能使用,若在 IDE 中操作時,鍵入 to 前綴詞會出現程式碼自動完成建議,就能查看所有可轉換的型態方法。
接著介紹的是特殊字元,可以用在字串處理上,在下圖示範顯示效果:
$
字符號需要跳脫的原因是,它可以用來將變數帶入字串中直接排列顯示,對於字串處理比較方便,就不必用一堆連接字符與雙引號格式化文字,若需要使用到物件型態中的方法或屬性,在 $
符號後加上 { }
,再把變數放入其中就能使用,讀者可以比較 Line: 5 & 6 的差異。
若需要使用多行文字,可以使用三個雙引號表達,不過實際列出結果會發現歪了,此時可在 Line: 2 之後的行頭加上 |
符號,使用 trimMargin()
方法就會將空白的部分去除掉, trimMargin 預設判斷符號是 |,假使文字內容有用到預設符號,你也可以在方法參數中自訂 marginPrefix
使用其他字串當作判斷依據。
在處理文字時有許多方法可以使用,下圖列出最常使用的幾個,讀者可以實際練習一下,不一定要記得如何使用,但至少要有個印象,在將來遇到需求時能有個概念知道從何下手。
今日的課程比較多概念上的描述,通常要在反覆利用使才會越加熟練,且你不必記得 long 與 int 的正負值範圍,只需要有個概念:數值是有上限的,在未來開發時就要思考到你的運算是否會讓數值超過限制,下一堂將為您介紹 Kotlin 函式用法,明天見!
資料參考
Try Kotlin
https://try.kotlinlang.org/Kotlin Tutorial
http://www.codedata.com.tw/kotlin/kt04/Basic Types: Numbers, Strings, Arrays - Kotlin Programming Language
https://kotlinlang.org/docs/reference/basic-types.html