Kotlin中:和=运算符之间的差异
我是Kotlin的新手,试图了解何时使用Kotlin中:和=运算符之间的差异,kotlin,Kotlin,我是Kotlin的新手,试图了解何时使用“=”,何时使用:“。我听上去有点困惑 以下是导致我困惑的几件事: button.setOnClickListener(object : OnClickListener{ override fun onClick(view: View){ doSomething() } }) 这里的“object”是一个变量,如果我没弄错的话,它保存一个OnClickListner实例 按照上面的例子 class Car(val make:Str
“=”
,何时使用:“
。我听上去有点困惑
以下是导致我困惑的几件事:
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")
}
class Car(val品牌:字符串,var型号:字符串){
乐趣开始(噪音:String=“Wroom Wroom”){
println(噪音)
}
}
趣味主线(args:Array){
val carOne=汽车(“丰田”、“阿瓦隆”)
风险值car2:Car(“电信服务局”、“S”)
car3:汽车(“奔驰”、“C”)
}
在函数启动时,noise:String=“Wroom Wroom”
有效,carOne有效,但car2和car3无效,遵循变量“noise”
的模式
有人能解释一下我错在哪里吗。提前谢谢
“=”赋值运算符用于指定参数的默认值
“:”冒号:它将声明中的名称与类型分开
“=”赋值运算符用于指定参数的默认值
“:”冒号:它将声明中的名称与类型分开
=用于分配 :用于定义类型 但是,当您将其用作函数中的参数时
fun foo(noise : String = "Wroom Wroom ")
噪音是您的变量
字符串是您的类型(由定义:)
=“Wroom Wroom”是默认值=用于赋值
:用于定义类型
但是,当您将其用作函数中的参数时
fun foo(noise : String = "Wroom Wroom ")
噪音是您的变量
字符串是您的类型(由定义:)
=“Wroom Wroom”是默认值您将对象表达式和声明与带有默认值的正则变量声明相混淆
:
指对象的类型或超类型。对于关键字对象
,它允许创建从特定类型继承的匿名类。这类似于kotlin中的其他继承语法,但更具体。有关更多信息,请参阅
=
在本例中,仅为变量设置默认值。请注意,在您的示例中,您不是在函数调用中使用=
,而是在函数声明中使用 将对象表达式和声明与带有默认值的正则变量声明混淆
:
指对象的类型或超类型。对于关键字对象
,它允许创建从特定类型继承的匿名类。这类似于kotlin中的其他继承语法,但更具体。有关更多信息,请参阅
=
在本例中,仅为变量设置默认值。请注意,在您的示例中,您不是在函数调用中使用=
,而是在函数声明中使用 请参阅并向下滚动至“操作员和特殊符号”,谢谢您将我重定向到该页面。根据引用,“:”用于类型声明,因此不能与初始化合并。所以car2的正确用法应该是,var car2:Car=Car(“Benz”,“C”)。请参阅并向下滚动到“操作员和特殊符号”,谢谢您将我重定向到该页面。根据引用,“:”用于类型声明,因此不能与初始化合并。所以car2的正确用法应该是,var car2:Car=Car(“Benz”,“C”)。kotlin和java之间的区别:谢谢。运算符“:”用于类型声明,因此不能与初始化合并。所以car2的正确用法应该是,var car2:Car=Car(“Benz”,“C”)。kotlin和java之间的区别:谢谢。运算符“:”用于类型声明,因此不能与初始化合并。所以car2的正确用法应该是,var car2:Car=Car(“Benz”,“C”)。谢谢你写这篇文章。运算符“:”用于类型声明,因此不能与初始化合并。所以car2的正确用法应该是,var car2:Car=Car(“Benz”,“C”)。谢谢你写这篇文章。运算符“:”用于类型声明,因此不能与初始化合并。所以car2的正确用法应该是,var car2:Car=Car(“Benz”,“C”)。这可能也是根据惯例,类型规范没有前导空间的原因;它避免了混淆读取器(var a:Int
vsobject:T()
),这可能也是按照惯例,类型规范没有前导空格的原因;它避免了混淆读取器(var a:Int
vsobject:T()
)