Operators 箭头(";>;)操作符在Kotlin中做什么?

Operators 箭头(";>;)操作符在Kotlin中做什么?,operators,kotlin,Operators,Kotlin,可能是一个有点宽泛的问题,但官方文档甚至没有提到箭头操作符(或语言结构,我不知道哪个短语更准确)作为一个独立实体 最明显的用法是when条件语句,用于将表达式指定给特定条件: val greet = when(args[0]) { "Appul" -> "howdy!" "Orang" -> "wazzup?" "Banan" -> "bonjur!" else -> "hi!" } println(args[0] +"

可能是一个有点宽泛的问题,但官方文档甚至没有提到箭头操作符(或语言结构,我不知道哪个短语更准确)作为一个独立实体

最明显的用法是when条件语句,用于将表达式指定给特定条件:

  val greet = when(args[0]) {
    "Appul" -> "howdy!"
    "Orang" -> "wazzup?"
    "Banan" -> "bonjur!"
    else    -> "hi!"
  }

  println(args[0] +" greets you: \""+ greet +"\"")
其他用途是什么,它们的作用是什么?
Kotlin中的箭头运算符有一般含义吗?

->
是Kotlin语法的一部分(类似于Java),可在3种上下文中使用:

  • 表达式将“匹配/条件”部分与“结果/执行”块分离时

  • lambda表达式,其中它将参数与函数体分离

      val lambda = { a:String -> "hi!" }
      items.filter { element -> element == "search"  }
    
  • 将参数类型与结果类型分开的函数类型,例如
    比较器

      fun <T> sort(comparator:(T,T) -> Int){
      }
    
    fun排序(比较器:(T,T)->Int){
    }
    
关于Kotlin语法的详细信息如下:


->
是一个分隔符。它是用于区分不同用途代码的特殊符号。它可用于:

  • 将参数和主体分隔开

  • 将参数和返回类型声明分隔在

  • 把树枝的状况和身体分开

这是在。

中的:

->

  • 将参数和主体分隔开

  • 在数组中分隔参数和返回类型声明

  • 分离分支的条件和主体


也许添加示例和参考链接可以改进这个答案。现在有3个上下文,而不仅仅是2个。谢谢大家的帮助和详细的答案。我将深入研究另外两个。对我来说,公认的答案并没有解释
->
是分隔符的基本概念。我的回答是试图解决这个问题。我还试图提供一些例子来清楚地证明这种分离。公平地说,我对科特林本人是新手,但我没有意识到这一点。
  fun <T> sort(comparator:(T,T) -> Int){
  }
val sum = { x: Int, y: Int -> x + y }
(R, T) -> R
when (x) {
    0, 1 -> print("x == 0 or x == 1")
    else -> print("otherwise")
}