Dictionary 科特林:集合定义的差异

Dictionary 科特林:集合定义的差异,dictionary,collections,kotlin,Dictionary,Collections,Kotlin,Kotlin在以下方面有什么不同: val customerProducts = mutableMapOf<Customer, Set<Product>>() val customerProducts=mutableMapOf() 这是: val customerProducts: MutableMap<Customer, Set<Product>> = mutableMapOf() val customerProducts:MutableM

Kotlin在以下方面有什么不同:

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

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

您的第二个示例无法编译,但我假设您的意思是:

val customerProducts: MutableMap<Customer, Set<Product>> = mutableMapOf()
val customerProducts:MutableMap=mutableMapOf()
要回答这个问题,没有区别。您必须提供要在某处创建的
映射的类型参数,然后它将在另一个位置被推断出来。你想用哪一个取决于你自己

  • 如果您在赋值的左侧提供此信息,并使用显式变量类型,则将通过
    mutableMapOf
    函数进行推断
  • 如果在
    mutableMapOf
    函数的右侧提供该变量,则将推断变量的类型

第二条语句无法编译。