Kotlin中的箭头(“ – >”)是什么?
可能有点宽泛的问题,但官方文档甚至没有提到作为一个独立实体的箭头运算符(或语言构造,我不知道哪一个词更准确)。
最明显的用法是when条件语句,它用于将表达式分配给特定的条件:
val greet = when(args[0]) { "Appul" -> "howdy!" "Orang" -> "wazzup?" "Banan" -> "bonjur!" else -> "hi!" } println(args[0] +" greets you: \""+ greet +"\"")
还有什么其他用途,它们是做什么的? Kotlin中的箭头运算符有一般意义吗?
->
是Kotlin语法的一部分(类似于Java的lambda表达式语法 ),可以在3个上下文中使用:
-
when
它将“匹配/条件”部分与“结果/执行”部分分开when
表达式val greet = when(args[0]) { "Apple", "Orange" -> "fruit" is Number -> "How many?" else -> "hi!" }
-
lambda表达式,它将参数从函数体中分离出来
val lambda = { a:String -> "hi!" } items.filter { element -> element == "search" }
-
函数类型,它将参数类型与结果类型(如
comparator
分开fun <T> sort(comparator:(T,T) -> Int){ }
关于Kotlin语法的细节特别在文档中:
- 函数类型
- functionLiteral
- whenEntry