Kotlin Infix函數(shù)的使用方法

假設(shè)你有一副撲克牌,你是這樣定義的

//花形
enum class Suit {
  HEARTS,
  SPADES,
  CLUBS,
  DIAMONDS
}

//數(shù)字
enum class Rank {
  TWO, THREE, FOUR, FIVE,
  SIX, SEVEN, EIGHT, NINE,
  TEN, JACK, QUEEN, KING, ACE 
}
data class Card(val rank: Rank, val suit: Suit)

你可以這樣生成一張牌:

val card = Card(Rank.QUEEN, Suit.HEARTS)

如果你想把兩個(gè)屬性鏈接起來:

enum class Rank {
  TWO, THREE, FOUR, FIVE,
  SIX, SEVEN, EIGHT, NINE,
  TEN, JACK, QUEEN, KING, ACE;
  fun of(suit: Suit) = Card(this, suit)
}

你可以這樣生成一張牌:

val card = Rank.QUEEN.of(Suit.HEARTS)

但是,如果你用了infix的話:

enum class Rank {
  TWO, THREE, FOUR, FIVE,
  SIX, SEVEN, EIGHT, NINE,
  TEN, JACK, QUEEN, KING, ACE;
 
  infix fun of(suit: Suit) = Card(this, suit)
}

你可以這樣生成一張牌:

val card = QUEEN of HEARTS

代碼出自:
https://medium.com/makingtuenti/infix-functions-in-kotlin-2db3d3142dd2

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容