2019年5月20日 星期一

Kotlin學習筆記(4) infix Functions 内缀函数

Kotlin學習筆記(4)  infix Functions 内缀函数

infix Functions 内缀函数
Member functions and extensions with a single parameter can be turned into infix functions.

程式 

fun main() {

  infix fun Int.times(str: String) = str.repeat(this)        // 1
  println(3 times "Bye ")                                    // 2

  val  pair = "1. Ferrari" to "2. Katrina"                          // 3
  println(pair)

  infix fun String.onto(other: String) = Pair(this, other)   // 4
  val myPair = "McLaren" onto "Lucas"
  println(myPair)

  val sophia = Person("Sophia")
  val claudia = Person("Claudia")

  sophia likes claudia                                       // 5

 
}

class Person(val name: String) {
  val likedPeople = mutableListOf<Person>()
  infix fun likes(other: Person) { likedPeople.add(other) }  // 6
}
輸出畫面
Bye Bye Bye (1. Ferrari, 2. Katrina) (McLaren, Lucas)


  1. Defines an infix extension function on Int.
  2. Calls the infix function.
  3. Creates a Pair by calling the infix function to from the standard library.
  4. Here's your own implementation of to creatively called onto.
  5. Infix notation also works on members functions (methods).
  6. The containing class becomes the first parameter.

沒有留言:

張貼留言

ESP32 微控制器 採集的環境數據,經由 MQTT 協定 轉換並寫入工業標準的 Modbus 暫存器 中

  一個典型的 IoT(物聯網)與工業自動化系統整合(SCADA/機台連線) 的架構圖。它透過 Node-RED 作為核心資料網關,將前端 ESP32 微控制器 採集的環境數據,經由 MQTT 協定 轉換並寫入工業標準的 Modbus 暫存器 中。 1. 各模組功能拆解...