Kotlin:收藏定义的差异

在这之间Kotlin有什么不同之处:

val customerProducts = mutableMapOf<Customer, Set<Product>>() 

和这个:

 val customerProducts: MutableMap<Customer, Set<Product>> = mutableMapOf() 

你的第二个例子不会编译,但我会假设你的意思是这样的:

 val customerProducts: MutableMap<Customer, Set<Product>> = mutableMapOf() 

要回答这个问题,没有什么区别。 您必须提供您正在创建的Map的类型参数,然后将在另一个位置推断。 这取决于你想使用哪一个。

  • 如果你在赋值左侧提供了这个信息,并且有一个明确的变量类型,那么它将被mutableMapOf函数推断出来。
  • 如果您将其提供给mutableMapOf函数的右侧,则将推断该变量的类型。