scala - 难以理解函数语法

标签 scala

我可以理解这一点:

scala> def f(i: Int) = "dude: " + i
f: (i: Int)java.lang.String

scala> f(3)
res30: java.lang.String = dude: 3

它定义了一个函数 f,它接受一个 int 并返回一个格式为 dude: + 传入的 int 的字符串。

现在可以像这样指定相同的函数:
val f: Int => String = x => "dude: " + x
scala> f(3)
res31: String = dude: 3
  • 为什么我们需要两个 =>
  • 什么String = x意思?我认为当你想在 Scala 中定义一些东西时,你会做 x:String ?
  • 最佳答案

    你应该把它解析为

    val (f: Int => String) = (x => "dude: " + x)
    

    所以它指定 f 的类型是 (Int => String)并且被定义为一个匿名函数,它接受一个 Int参数 (x)并返回 String .

    关于scala - 难以理解函数语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14430334/

    相关文章:

    Scala Map 作为 Spark ML 模型的参数

    scala 以格式保存到数组

    斯卡拉的错误行为尝试优雅

    scala - spark 使用带有选项字段的案例类将数据帧转换为数据集

    scala - 可以更改 sbt 插件的日志级别吗?比如 sbt-idea?

    Scala:除以零

    ruby - 选择工具集 : scala, ruby​​、java 等

    scala - Scala 中的模式匹配元组

    斯卡拉 Play 2.6 : How to design an efficient health check?

    scala - 将第一个列表的元素分发到另一个列表/数组