iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
Software Development

成為一名 Kotlin 後端攻城獅系列 第 13

Day 13 Kotlin 函式介紹 (1)

  • 分享至 

  • xImage
  •  

昨天介紹完控制流程加上之前的 Kotlin 的型別與特性介紹,相信各位讀者已經有相當的基礎了。今天開始我們將建立在基礎上開始講起函式 (Function)。

函式是當代常見程式語言必備的撰寫手法。透過將重複性高的程式碼包成一個函式可以讓我們透過重複呼叫函式更加簡潔地撰寫程式碼,避免大量的複製貼上,間接提升程式的可讀性和可維護性。

下面是一些 Kotlin 使用函式的方法:

  • 函式的定義:使用 fun 關鍵字來定義函式,並指定函式名稱、參數和返回值的類型。例如,我們可以定義一個 greet 函式,用於向指定的名字打招呼。

    fun greet(name: String) {
        println("Hello, $name!")
    }
    
  • 單一表達式函式:對於只有單一表達式的函式,可以使用簡潔的語法來縮寫函式的實現。例如,我們可以定義一個 square 函式,用於計算數字的平方。

    fun square(x: Int) = x * x
    
  • 高階函式 (Higher-order function):這是一種將函式作為參數傳遞給其他函式或將函式作為返回值返回的撰寫方法。例如,我們可以定義一個 calculate 函式,接受兩個數字和一個操作函式作為參數,並返回操作後的結果。

    fun calculate(x: Int, y: Int, operation: (Int, Int) -> Int): Int {
        return operation(x, y)
    }
    
    fun add(x: Int, y: Int) = x + y
    
    val result = calculate(5, 3, ::add)
    
    
  • 遞迴函式 (Recursive function):在函式中調用自身來實現遞迴邏輯,常見於樹狀資料結構的搜尋 (謎:常見於 Leetcode)。

    • 例(1),我們可以定義一個 factorial 函式,用於計算指定數字的階乘。

      fun factorial(n: Int): Int {
          return if (n == 0) 1 else n * factorial(n - 1)
      }
      
      
    • 例(2),Fibonacci 函式

      fun fibonacci(n: Int): Int {
          return if (n <= 1) {
              n
          } else {
              fibonacci(n - 1) + fibonacci(n - 2)
          }
      }
      
      val result = fibonacci(10)
      println(result) // 輸出:55
      

      這個函式接受一個整數 n,並返回 Fibonacci 數列中索引為 的數字。如果 小於等於 1,則直接返回 ;否則,遞迴計算前兩個數字的總和。

參考資料


上一篇
Day 12 Kotlin 控制流程 (2) - 迴圈
下一篇
Day 14 Kotlin 函式介紹 (2)
系列文
成為一名 Kotlin 後端攻城獅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言