首页 > 解决方案 > Kotlin 中 : 和 = 运算符之间的区别

问题描述

我是 Kotlin 的新手,并试图了解何时使用"="以及何时使用":". 这听起来让我有点困惑。

以下是导致我困惑的几件事:

button.setOnClickListener(object : OnClickListener{
    override fun onClick(view: View){
    doSomething() }
})    

如果我没记错的话,这里的“object”是一个保存OnClickListner实例的变量。

按照上面的例子,

class Car(val make:String ,var  model : String){

fun start(noise : String = "Wroom Wroom"){
    println(noise)
 }
}
fun main(args: Array<String>) {

val carOne = Car("Toyota","Avalon")
var car2:Car("Telsa","S")
car3:Car("Benz","C")

}

在函数开始时,noise : String = "Wroom Wroom "有效,carOne 有效,但car2car3 无效,遵循变量的模式"noise"

有人可以解释我错在哪里。提前致谢。

标签: kotlin

解决方案


您将对象表达式和声明与具有默认值的常规变量声明混淆了。

:指对象的类型超类型。但是,在关键字的情况下object,它允许创建一个继承自特定类型的匿名类。这类似于 kotlin 中的其他继承语法,但更具体。请参阅此处了解更多信息。

=在这种情况下,只需为变量设置默认值。请注意,在您的示例中,您不是=在函数调用中使用,而是在函数声明中使用。


推荐阅读