iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 4
0

脫魯實錄之如何30天把到凱特琳(Kotlin) - Day4

昨天簡單介紹完與 Kotlin 約會的地點後
今天要來跟 Kotlin 共進第一餐啦!!
PS: 接下來的介紹篇,我會盡量用和 Java 比較的方式來分享學習 Kotlin 的經驗
有學過 Java 的同學應該會比較快上手;沒有學過也沒關係,這樣就可以一次學兩種語法啦!!

Kotlin和Java一樣,基本型態如下:

  • Byte
  • Shore
  • Int
  • Long
  • Float
  • Double
  • Char
  • Boolean
  • String

這裡要注意一下和 Java 不同的是 除了 String 以外 Kotlin 的變數型態第一個字都為大寫喔!!
Java 的變數型態如果為大寫的話是封裝類型
詳細可以參考這篇:JAVA基本类型和包装类

在 Kotlin 中宣告變數分成兩種 var 和 val
val 變數也就相當於 Java 中使用關鍵字 final 常數,數值一旦給定後就不可再更改

Java:

private 變數型態 變數名稱 = 值
private String name = "Cindy"; //可變更name的值,變數型態在變數名稱前面
private final String name1 = "Cindy"; //不可變更name1的值

Kotlin:

var 變數名稱: 變數型態(可給可不給) = 值
var name: String = "Cindy" //可變更name的值,變數型態在變數名稱後面
val name1: String = "Cindy" //不可變更name1的值
//另外也可以不給變數型態,由Kotlin來判斷
var name2 = "Cindy" //直接給值,判定為String
var age = 10 //判定為Int
var isGirl = true //判定為boolean
var height = 155.55 //判定為Double

我們可以打開昨天下載的 IntelliJ IDEA
在 main function 中打上上面的程式碼練習
練習的過程中難免會出錯,以下是比較容易忘記且會編譯錯誤的例子:

val age1 //必須賦予age1值或是賦予它型態
val age2: Int
age2 = 10
age2 = 11 //已經賦予age2值了就不能再次給予值
var number: Double = 10 //浮點數型態,必須加上小數點.0

那這邊也給大家幾個小技巧
IntelliJ IDEA 有很人性化的提醒功能,會告訴你錯在哪該怎麼改,或是建議你怎麼寫會比較好
不過有時還是要靠自己判斷要不要照他的做

範例一:假如第一行 val age1 出錯了,出現紅底線怎麼辦,如下圖
https://ithelp.ithome.com.tw/upload/images/20171223/20107165GdgNLBO2Z5.png
把滑鼠移到出錯的地方,就會出現提示,歐~ 原來我忘記把值給 age1 了!!

範例二:宣告 Double 變數時出錯了!!
https://ithelp.ithome.com.tw/upload/images/20171223/20107165gn4lbk7Pep.png
一樣把滑鼠移到錯誤的地方,左邊會出現一個紅色驚嘆號,點下去之會有幾個選項建議你或是提醒你你哪裡出錯了
所以以這個範例來說,因為你宣告的 number 這個變數是浮點數型態的 Double,所以必須給上小數點.0

範例三:建議你在宣告時可以省略變數型態
https://ithelp.ithome.com.tw/upload/images/20171223/20107165dinM71I7xc.png
因為 Kotlin 的特性可以在你宣告變數且給值時自動幫你判斷你給的值是什麼型態,來決定你的變數是什麼型態
所以這邊他用灰色字加上~~底線(這要怎麼說呢XD)來告訴你有更好的寫法喔
滑鼠移上去之後會出現黃色驚嘆號,點擊他一樣會出現建議
這邊的例子就建議你可以把 String 給拿掉,讓 Kotlin 幫你判斷型態
不過雖然如此,不代表你就可以隨便變換型態喔,他會以你第一次給值的時機來判斷喔!!

以上是一些變數宣告的簡單範例
明天從"整數型態"來開始介紹起囉~~
邊打文章邊打哈欠先來睡哩大家晚安兒


上一篇
找個與 Kotlin 約會的好地方 - IntelliJ IDEA
下一篇
與 Kotlin 共進午餐 - 數值型態(Byte, Short, Int, Long, Float, Double)
系列文
脫魯實錄之如何30天把到凱特琳(Kotlin)30

尚未有邦友留言

立即登入留言