iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 11
0
Software Development

脫魯實錄之如何30天把到凱特琳(Kotlin)系列 第 11

跟 Kotlin 去玩密室逃脫 - 函式(function)

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

今天,我們跟 Kotlin 去玩密室逃脫
為什麼覺得 函式(function) 跟密室逃脫有關呢
因為function就是在class中一個個獨立的程式區塊
可以把某一任務或是相同且重複的任務在function中完成甚至回傳結果

好處是:

  1. 可以整理重複使用的程式碼
  2. 程式碼看起來比較乾淨

Kotlin中的函式(function)在Java叫做方法(Method)
Java宣告方法如下:

private 回傳型態 方法名稱(參數型態 參數名稱1, 參數型態 參數名稱2){
    //方法區塊
    return 回傳結果;
}
//Ex:
private String createFullName(String firstName, String lastName){
    String fullName = firstName + lastName;
    return fullName;
}

Kotlin宣告函式如下:

private 方法名稱(參數名稱1: 參數型態, 參數名稱2: 參數型態): 回傳型態{
    //方法區塊
    return 回傳結果
}
//Ex:
private fun createFullName(firstName: String, lastName: String): String{
    var fullName = firstName + lastName
    return fullName
}

接下來再介紹幾個 Kotlin function 厲害的地方
1. function 後面的 {} 可以用 "=" 取代,另外 "=" 也代表 return 的意思

private fun createFullName(firstName: String, lastName: String) = print("My name is $firstName $lastName")
fun main() {
    createFullName("Andrew E.", "Rubin")  
}

private fun createFullName(firstName: String, lastName: String) = "My name is $firstName $lastName"
fun main() {
    print(createFullName("Andrew E.", "Rubin"))
}

以上兩個例子都是印出 My name is Andrew E. Rubin

2. Kotlin 中的參數可以給預設值

在 Java 中,參數宣告好之後,就一定得傳入,否則就要寫在最後方用...的方式傳入,再用陣列的方式去接,而且只能相同型態
但在 Kotlin 中,宣告參數時可以順便帶上預設值,這樣就可以視情況決定要不要帶入該參數,或是指定參數名來帶入也行
請看以下範例
範例一:

private fun createFullName(firstName: String, lastName: String, age: Int = 0){
    print("My name is $firstName $lastName I am $age years old")
}
fun main() {
    createFullName("Andrew E.", "Rubin") //可以不傳入age
}

印出:My name is Andrew E. Rubin I am 0 years old

範例二: 給 lastName 預設值,並用指定參數傳入的方式傳入 age

private fun createFullName(firstName: String, lastName: String = "lastname", age: Int = 0){
    print("$firstName $lastName I am $age years old")
}
fun main() {
    createFullName("Andrew E.", age = 18)
}

印出:Andrew E. lastname I am 18 years old

以上就是 Kotlin 的 function 介紹啦
期待明天的分享喔~


上一篇
跟 Kotlin 去逛逛夜市買串燒 - 陣列
下一篇
今天跟 Kotlin 一起去跨年!!! 新年快樂!!!
系列文
脫魯實錄之如何30天把到凱特琳(Kotlin)30

尚未有邦友留言

立即登入留言