iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
Mobile Development

Android Studio 30天學習紀錄系列 第 18

Android Studio 30天學習紀錄-Day18 Kotlin&基礎語法

  • 分享至 

  • xImage
  •  

Kotlin是由俄羅斯聖彼得堡的JetBrains開發團隊開發出來的程式語言,他可以在JVM(java虛擬機)環境中和java code運作,同時也可將程式碼編譯成js,方便在js的環境下去運行你的程式碼,而整體來說寫法會比java的更簡潔一點,那麼就進入語法的部分,首先先看到變數的宣告:

變數

變數首先會有var和val的這兩個字眼,var代表的是可變變數,而val則是不可變變數(類似final,但final的限制更多),接著看到宣告範例。

fun main(){
    //lateinit可後面在賦值(null)
    lateinit var str : String
    //val值不可變動(類似final)
    val str2 : String = "text"
    //可變變數(另外還有Float、Double、Byte、Char等)
    var s : String ="abc"
    var i : Int = 5
    var l : Long = 9223372036854775807
    var b : Boolean = true
    //若不給予型態也可宣告(Any可為任何型態(如java的Object))
    var a = 10
    var a1 : Any = 20
}

判斷

if else
if-else算很常會用到的判斷方式,與java的寫法一樣,而也可以直接丟給變數(寫法2)。

fun main(){
    var a = 10
    var ans = 0
    //寫法1
    if(a<5){
        ans=1
    }
    else if(a<10){
        ans=2
    }
    else {
        ans=3
    }
    //寫法2
    var ans2 = if(a<5) 1 else if(a<10) 2 else 3
}

when
可以判斷傳入的值並執行對應的情況,整體來說用起來有點類似java的switch-case。

fun main(){
    var t = 3
    when(t){
        1 -> println("t=1")
        2 -> println("t=2")
        else -> {
            println("t>2")
        }
    }
}

另外也有判斷值是否為null的運算子,!! 和 ?

    val text : String = "text"
    Log.d("Length",""+text!!.length)//當值為空會丟異常
    Log.d("Length",""+text?.length)//值可為空

函式

fun
fun等同於java的void。

//函式使用
class main{
    f()
    var f1 = f1()
    var f2 = f2(2)
}
//不須傳入值、無回傳
fun f(){
    
}
//不須傳入值、回傳String
fun f1():String{
    return "f1"
}
//傳入Int值、回傳String
fun f2(num : Int):String{
    if(num>0){
        return "num>0"
    }
    else
        return "num=0"
}

迴圈

for-loop
在kotlin的for裡面,只需要下變數名稱 in A..B ,他變數名稱就會幫你從A跑到B了,大概如下:

//    for(int i = 1 ; i<=5 ; i++){
//        System.out.println(i);
//    }

for(i in 1..5){
    println(i)
}
// Output
// 1
// 2
// 3
// 4
// 5

while

var j = 8
while(j<=10){
    println(j)
    j++ //j=j+1
}
// Output
// 8
// 9
// 10

今天就先簡單介紹一些會用到的語法,當然還有像是list或是運算子等等沒有介紹到,等之後用到時會在詳加說明,明天主要以java執行緒、kotlin的Thread及Coroutines繼續講起,那就明天再見!


上一篇
Android Studio 30天學習紀錄-Day17 Biometric指紋認證
下一篇
Android Studio 30天學習紀錄-Day19 java&kt執行緒使用
系列文
Android Studio 30天學習紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言