Scala序列中的箭头符号是什么意思?

时间:2016-03-03 20:10:39

标签: scala sequence

在查看开源代码时,我发现有时候有些人会使用这样的语法:

Seq[Date => String]

您能解释一下这是什么意思以及如何使用它?我是Scala的新手。

2 个答案:

答案 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)