“Higher order functions”的版本间差异
本页内容
(创建页面,内容为“{{DISPLAYTITLE:高阶函数}}6 = Scala 高阶函数 = Scala 函数 高阶函数(Higher-Order Function)就是操作其他函数的函数。 Scala 中允许使用高阶函数, 高阶函数可以使用其他函数作为参数,或者使用函数作为输出结果。 以下实例中,apply() 函数使用了另外一个函数 f 和 值 v 作为参数,而函数 f 又调用了参数 v: <sample title="" de…”) |
无编辑摘要 |
||
第10行: | 第10行: | ||
以下实例中,apply() 函数使用了另外一个函数 f 和 值 v 作为参数,而函数 f 又调用了参数 v: | 以下实例中,apply() 函数使用了另外一个函数 f 和 值 v 作为参数,而函数 f 又调用了参数 v: | ||
< | <pre> | ||
object Test { | object Test { | ||
def main(args: Array[String]) { | def main(args: Array[String]) { | ||
第18行: | 第18行: | ||
} | } | ||
// 函数 f 和 值 v 作为参数,而函数 f 又调用了参数 v | // 函数 f 和 值 v 作为参数,而函数 f 又调用了参数 v | ||
def apply(f: Int = | def apply(f: Int => String, v: Int) = f(v) | ||
def layout[A](x: A) = | def layout[A](x: A) = "[" + x.toString() + "]" | ||
} | } | ||
</pre> | |||
执行以上代码,输出结果为: | 执行以上代码,输出结果为: | ||
< | <pre> | ||
$ scalac Test.scala | $ scalac Test.scala | ||
$ scala Test | $ scala Test | ||
[10] | [10] | ||
</pre> | |||
[[scala functions|Scala 函数]] | [[scala functions|Scala 函数]] |
2022年10月14日 (五) 16:51的最新版本
Scala 高阶函数
高阶函数(Higher-Order Function)就是操作其他函数的函数。
Scala 中允许使用高阶函数, 高阶函数可以使用其他函数作为参数,或者使用函数作为输出结果。
以下实例中,apply() 函数使用了另外一个函数 f 和 值 v 作为参数,而函数 f 又调用了参数 v:
object Test { def main(args: Array[String]) { println( apply( layout, 10) ) } // 函数 f 和 值 v 作为参数,而函数 f 又调用了参数 v def apply(f: Int => String, v: Int) = f(v) def layout[A](x: A) = "[" + x.toString() + "]" }
执行以上代码,输出结果为:
$ scalac Test.scala $ scala Test [10]