在Python我可以有复杂的字典键一样,例如:如何在Kotlin中使用组合键?
d = {}
d[(1, 2)] = 3
print d[(1, 2)] # prints 3
我如何可以声明和填充在科特林这样的地图?
编辑:我想声明像这样的地图,但我不知道如何来填充它:
val my_map = HashMap<Pair<Int, Int>, Int>()
在Python我可以有复杂的字典键一样,例如:如何在Kotlin中使用组合键?
d = {}
d[(1, 2)] = 3
print d[(1, 2)] # prints 3
我如何可以声明和填充在科特林这样的地图?
编辑:我想声明像这样的地图,但我不知道如何来填充它:
val my_map = HashMap<Pair<Int, Int>, Int>()
这很简单,你第一次创建你的字典,然后插入钥匙和值:
val (a, b):Pair<Int, String> = Pair(1, "x")
val map: HashMap<Pair<Int, String>, Int> = hashMapOf((a, b) to 1)
map[Pair(2, "y")] = 3
等等:)
确定它的工作,我不得不像这样明确地写“Pair”:'my_map [Pair(1,2)] = 3' – fafl
@fafl太棒了!是的,一旦你创建了,你也可以像这样添加元素,我一直都很喜欢帮助。 –
在科特林,不像Python中没有元组数据类型。对于二元组,有一个Pair类。对于更大的arity,你应该使用数据类。
val map: HashMap<Pair<Int, Int>, Int> = hashMapOf(Pair(1, 2) to 3)
val nullable: Int? = map[Pair(1, 2)]
val notNullable = map.getValue(Pair(1, 2))
这本质上并不复杂。密钥可以是任何你喜欢的类型,包括一对。 – chris