kotlin中的嵌套对数组

时间:2017-06-02 03:39:20

标签: kotlin

我想在kotlin中使用嵌套对,例如"a" to {"b" to "c"}

我试过了:

"teachers" to {"a" to "c"; "c" to "d"}

但是当我调试它时,数据类型是:

 (teachers, () -> kotlin.Pair<kotlin.String, kotlin.String>)

如何使用它?

如果不使用

"a" to mapOf("a" to "b"...)

有可能吗?

1 个答案:

答案 0 :(得分:4)

{ A -> B }是一个匿名函数,其参数为A,正文为B

{ B }{ () -> B }的缩写形式。

此外,

A; B

相同
A
B

因此{"a" to "c"; "c" to "d"}表示参数列表为()(零参数)且正文为

的函数
Pair("a", "c")
Pair("c", "d")

等同于::noName

之类的东西
fun noName() {
    Pair("a", "c")
    return Pair("c", "d")
}

无论如何,代码中的大括号是什么?它们并不意味着“成对”。我认为你的意思是在python中表示一个地图(或字典),但是PAIRS不是MAPS,反之亦然。

嵌套对是这样的:"a" to ("b" to "c")相当于Pair("a", Pair("b", "c"))

如果你想在Kotlin制作地图,你应该使用函数mapOf()

如果你想在Kotlin中创建一对数组,你可以像arrayOf("a" to "b", "c" to "d")一样。

此外,数组不是地图,反之亦然。

这是(一对(字符串)和((字符串对)数组)的一个例子。

"a" to arrayOf("b" to "c", "d" to "e")