iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0

前言

昨天已經介紹過該如何安裝Android Studio了,現在就該踏出我們建構APP的第一步了吧,Android Studio啟動!!!......
本來應該是要這樣的啦,但我昨天去翻出我大學時寫的APP專題的程式碼出來看之後......
很好,當時的我到底在寫甚麼東西(全忘光了),雖然說Kotlin本身已經是個比較新的語言了,基本的邏輯和語法和近代的程式語言相似,並且也是一種物件導向程式設計(Object-oriented programming)的語言,基本上有C++、Python、Java等程式語言基礎的人應該不難上手,但還是藉這個機會來簡單介紹一下Kotlin的基礎概念和語法(主要是讓我復健用的)。

Kotlin語法介紹

Kotlin的官方網站其實已經有提供了許多的學習資源了,我們點擊上方的Docs就能看到官方有提供了非常多的資源給我們觀看和學習
https://ithelp.ithome.com.tw/upload/images/20240917/20162649j440YSIyf3.png

接下來我會簡單介紹Kotlin一些基礎的語法讓你可以快速的了解和入門,若是你想要熟悉這個語言還是建議去找個教學來看,或是官方文件裡有提到JetBrains Academy也有提供的免費Kotlin Core課程讓你學習所有Kotlin的基礎知識


程式的第一步Hello world!開始說起,我們來看看下面官方文件提供的範例

// 節錄自 Kotlin 官方教學程式碼
fun main() {
    println("Hello world!")
}
  • 函式

在 Kotlin 中,fun關鍵字用來定義一個函式。這是 Kotlin 語言的基本構造之一。函式通常會包含名稱、參數列表(如果有的話)以及一個函式體。以下是函式的基本結構:

fun 函式名稱(參數1: 類型, 參數2: 類型): 回傳類型 {
    // 內容
    return 回傳值
}
  • Print

在 Kotlin 中,printprintln 是用來輸出訊息到控制台的標準函式,若是有寫過Java或Arduino的人應該會覺得這個用法很眼熟。兩者的區別在於,print 只會輸出訊息,不會自動換行,而 println 則會在輸出訊息後自動換行。詳細的範例如下

// 節錄自 Kotlin 官方教學程式碼
print("Hello ")
print("world!")

輸出結果如下

Hello world!

而println 在輸出訊息後會自動換行

// 節錄自 Kotlin 官方教學程式碼
println("Hello world!")
println(42)

輸出結果如下

Hello world!
42
  • 變數宣告

在 Kotlin 中,變數的宣告有兩種方式:使用 valvar 關鍵字。

  1. val用來宣告一個不可變的變數,這個變數只能被賦值一次。類似於其他語言中的「常數」或「final」變數。
fun main() {
// 節錄自 Kotlin 官方教學程式碼
//sampleStart
    // Declares the variable x and initializes it with the value of 5
    val x: Int = 5
    // 5
//sampleEnd
    println(x)
}

輸出結果如下

5

val宣告的函數沒辦法再被賦值,若是強行賦值第二次,編譯器會報錯'val' cannot be reassigned.,若是該變數會在後續的程式中被賦予其他的值,則應用var來宣告該變數。

  1. var 用來宣告一個可變的變數,這個變數可以在程式執行期間被重新賦值。
fun main() {
// 節錄自 Kotlin 官方教學程式碼
//sampleStart
    // Declares the variable x and initializes it with the value of 5
    var x: Int = 5
    // Reassigns a new value of 6 to the variable x
    x += 1
    // 6
//sampleEnd
    println(x)
}

輸出結果如下

6

同時Kotlin 支援類型推斷,當你宣告變數時,可以省略類型,Kotlin 會根據賦予的值自動推斷變數的類型。
範例如下

val name = "Alice" // Kotlin 自動推斷 name 的類型為 String
var age = 25       // Kotlin 自動推斷 age 的類型為 Int
var Pi= 3.14       // Kotlin 自動推斷 age 的類型為 double
println(name::class.simpleName)
println(age::class.simpleName)
println(Pi::class.simpleName)

在上面的程式碼我們宣告了三個變數,並使用了::class.simpleName來取得變數的類型
輸出的結果如下

String
Int
Double
  • String templates

在 Kotlin 中,字串模板 (String templates) 是一種方便的方式,可以將變數或表達式嵌入到字串中,而不需要使用繁瑣的字串連接運算符。字串模板使用 $ 符號來插入變數,並且可以使用 ${} 來插入更複雜的表達式。

  1. 插入變數
    如果只是單純插入變數,可以直接使用$符號。
val name = "Alice"
val greeting = "Hello, $name!"
println(greeting)

輸出結果如下

Hello, Alice!
  1. 插入表達式
    如果要插入表達式或複雜的運算,需要使用${}
val apples = 3
val oranges = 5
println("I have ${apples + oranges} fruits.")

輸出結果如下

I have 8 fruits.

還有許多字串模板的使用方式,我們這邊就先簡單帶過,如果之後有用到其他方法,我們在做說明。

  • if

在 Kotlin 中,if條件判斷是用來根據條件執行不同程式碼的一種控制結構。if表達式可以用於傳統的條件語句,也可以作為表達式返回值。以下是幾種常見的if用法。

  1. 基本 if 語法
    這是最基本的 if 語句,當條件為真時執行特定程式碼,如果條件為假,則會執行 else 部分。
val age = 16

if (age >= 18) {
    println("You are an adult.")
} else {
    println("You are a minor.")
}

輸出結果如下

You are a minor.
  1. if-else if-else
    當有多個條件需要檢查時,可以使用 else if 來添加更多的條件分支。
val score = 85

if (score >= 90) {
    println("Grade: A")
} else if (score >= 80) {
    println("Grade: B")
} else if (score >= 70) {
    println("Grade: C")
} else {
    println("Grade: D")
}

輸出結果如下

Grade: B
  1. if 作為表達式
    在 Kotlin 中,if 可以作為表達式來返回值,這是一個強大的功能。不同於許多其他語言,Kotlin 的 if 可以直接用來賦值給變數。
val a = 10
val b = 20

val max = if (a > b) a else b
println("The max value is $max")

在這個例子中,if 表達式直接返回較大的值,並賦值給 max。
輸出結果如下

The max value is 20

除了上面這些用法你還可以將 if 語句嵌套在其他 if 中,使其可以根據多個條件進行更細緻的判斷。

  • for

在 Kotlin 中,for 迴圈主要用來遍歷集合(如陣列、列表、範圍等),並對集合中的每一個元素執行操作。for 迴圈的語法非常簡單且直觀。以下是常見的 for 迴圈用法。

for (i in 1..5) {
    println(i)
}

輸出結果如下

1
2
3
4
5

for迴圈還可以根據遍歷集合不同,或是結合其他語法產生不同的檢索效果,同時你也可以將複數的for迴圈組合起來成為巢狀迴圈以處理多維結構,礙於長度問題這方面的內容我們下次有機會再講。

  • while

在 Kotlin 中,whiledo-while 迴圈用來根據條件反覆執行某段程式碼。這些迴圈的執行條件是布林值,當條件為 true 時,迴圈會繼續執行,當條件為 false 時,迴圈終止。

  1. while 迴圈
    while 迴圈在每次執行之前都會先檢查條件,只有當條件為 true 時才會進入迴圈執行程式碼。
var i = 5

while (i > 0) {
    println(i)
    i--
}

輸出結果如下

5
4
3
2
1
  1. do-while 迴圈
    do-while 迴圈的不同點在於,它會先執行一次程式碼,然後再檢查條件。因此,即使條件最初是 false,程式碼也會至少執行一次。
var i = 0

do {
    println(i)
    i++
} while (i < 3)

輸出結果如下

0
1
2

如果 whiledo-while 的條件永遠不會變為 false,迴圈將無限執行,這被稱為無窮迴圈,通常這種無窮迴圈通常需要使用 break 關鍵字來跳出。而continue 關鍵字和break不同,continue會跳過當前迴圈的剩餘程式,並進入下一次迴圈。


後話

本來今天想把kotlin的語法一次講完,但官網的文件看著看著發現原來kotlin有那麼多我之前沒注意到的用法,礙於文章的長度(主要是我累了)剩下的內容我們明天再說吧。
如果你能看到這邊,那我在這邊祝大家中秋佳節快樂,吃烤肉都不會變胖,明天我再把when和集合等剩下的內容寫完,我們就能正式喊出Android Studio啟動!!!應該吧


參考來源
https://kotlinlang.org/docs/home.html


上一篇
Day2:安裝Android Studio
下一篇
Day4:基礎的Kotlin語法(二)
系列文
github裡永遠有一個還沒做的SideProject :用Kotlin來開發點沒用的酷東西30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言