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