在查看开源代码时,我发现有时候有些人会使用这样的语法:
Seq[Date => String]
您能解释一下这是什么意思以及如何使用它?我是Scala的新手。
答案 0 :(得分:3)
Seq[Date => String]
是Date
(接受Date
类型的参数)到String
(返回String
)的一系列函数。它是Function1[Date, String]
的语法糖:
Seq[Function1[Date, String]]
例如,可以使用:
val x = List[Date => String](date => date.toString)
在调用时,会打印toString
类的Date
方法。
答案 1 :(得分:1)
这意味着这是函数从Date到String 的序列。在Scala中,函数是一等公民,这意味着(除其他外)函数具有类型。 A => B
是描述函数类型的符号,该函数采用类型A的参数并返回类型B的值。
例如,您可以写:
val f1: Date => String = d => d.toString
def f2(d: Date): String = d.toString
val s: Seq[Date => String] = Seq(f1, f2)