我正在将我的一些Java代码转换为Kotlin,我不太了解如何实例化Kotlin代码中定义的接口.作为一个例子,我有一个接口(在Java代码中定义):
public interface MyInterface {
void onLocationMeasured(Location location);
}
Run Code Online (Sandbox Code Playgroud)
然后在我的Kotlin代码中进一步实例化这个接口:
val myObj = new MyInterface { Log.d("...", "...") }
Run Code Online (Sandbox Code Playgroud)
它工作正常.但是,当我将MyInterface转换为Kotlin时:
interface MyInterface {
fun onLocationMeasured(location: Location)
}
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:Interface MyListener does not have constructors当我尝试实例化它时 - 虽然在我看来除了语法之外没有任何改变.我是否误解了Kotlin界面的工作原理?
可能有点广泛的问题,但官方文档甚至没有提到箭头操作符(或语言结构,我不知道哪个短语更准确)作为一个独立的实体.
最明显的用法是when条件语句,它用于将表达式分配给特定条件:
val greet = when(args[0]) {
"Appul" -> "howdy!"
"Orang" -> "wazzup?"
"Banan" -> "bonjur!"
else -> "hi!"
}
println(args[0] +" greets you: \""+ greet +"\"")
Run Code Online (Sandbox Code Playgroud)
有什么其他用途,他们做了什么?Kotlin中箭头操作符有一般含义吗?