科特林扩展

时间:2020-06-08 11:59:41

标签: kotlin

我仍在学习扩展,这是一个研究案例,我不理解“ return mapOf()”

fun main() {
  val kotlin = "Kotlin".getFirstAndLast()
  val amazing= "Amazing".getFirstAndLast()

  val kotlinFirstChar = kotlin["first"]
  val kotlinLastChar = kotlin["last"]

  val amazingFirstChar = amazing["first"]
  val amazingLastChar = amazing["last"]

  println("First char Kotlin is $kotlinFirstChar and $kotlinLastChar for second letter")
  println("First char Amazing is $amazingFirstChar and $amazingLastChar for second letter")

}
// TODO
fun String.getFirstAndLast(): Map<String, Char>{

    return mapOf()
}

预期结果:

First char Kotlin is K and n for second letter
First char Amazing is A and g for second letter

2 个答案:

答案 0 :(得分:0)

在Kotlin中,mapOf是kolin.collections包中的实用程序函数。它会返回一个新的不可变映射。

例如val map = mapOf(1 to "one", 2 to "two", 3 to "three")

这里,1、2和3是键,而1、2和3是各自的值。

如果您可以提及自己喜欢哪种语言,我们可以使用该语言进行类比。

答案 1 :(得分:0)

我可能认为您想沾染destructing declarationsPair

fun main() {
  val (kotlinFirstChar, kotlinLastChar) = "Kotlin".getFirstAndLast()
  val (amazingFirstChar, amazingLastChar) = "Amazing".getFirstAndLast()

  println("First char Kotlin is $kotlinFirstChar and $kotlinLastChar for second letter")
  println("First char Amazing is $amazingFirstChar and $amazingLastChar for second letter")
}

fun String.getFirstAndLast(): Pair<Char, Char> = first() to last()

虽然您也可以借助地图来做到这一点。

fun main() {
  val kotlin = "Kotlin".getFirstAndLast()
  val amazing= "Amazing".getFirstAndLast()

  val kotlinFirstChar = kotlin["first"]
  val kotlinLastChar = kotlin["last"]

  val amazingFirstChar = amazing["first"]
  val amazingLastChar = amazing["last"]

  println("First char Kotlin is $kotlinFirstChar and $kotlinLastChar for second letter")
  println("First char Amazing is $amazingFirstChar and $amazingLastChar for second letter")
}

fun String.getFirstAndLast(): Map<String, Char> =
    mapOf("first" to first(), "last" to last())