Conjunto de par nested en kotlin

Quiero usar un par nested en kotlin, como "a" to {"b" to "c"}

Yo he tratado :

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

pero cuando depuro esto, el tipo de datos es:

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

¿como usar esto?

si no lo usas

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

¿Es posible?

{ A -> B } es una function anónima cuyo parámetro es A y el cuerpo es B

{ B } es una forma abreviada de { () -> B } .

En adición,

 A; B 

es lo mismo que

 A B 

Por lo tanto {"a" to "c"; "c" to "d"} {"a" to "c"; "c" to "d"} significa una function cuya list de parameters es () (cero parameters) y el cuerpo es

 Pair("a", "c") Pair("c", "d") 

que es equivalente a algo así como ::noName con

 fun noName() { Pair("a", "c") return Pair("c", "d") } 

De todos modos, ¿cuáles son las llaves en su código? No significan "pares". Creo que quisiste representar un map (o dictionary) en Python, pero PARES NO SON MAPAS y viceversa.

El par nested es algo como esto: "a" to ("b" to "c") que es equivalente a Pair("a", Pair("b", "c"))

Si quiere hacer un map en Kotlin, debe usar la function mapOf() .

Si quiere hacer una matriz de pares en Kotlin, puede hacerlo como arrayOf("a" to "b", "c" to "d") .

Además, las matrices no son maps y viceversa.

Este es un ejemplo de (un par de (una cadena) y (una matriz de (pares de cadenas))).

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