美文网首页Scala Tour
[译]Scala高阶函数

[译]Scala高阶函数

作者: steanxy | 来源:发表于2017-05-04 23:05 被阅读213次

Scala允许定义高阶函数。高阶函数以其它函数作为参数,或者其结果是一个函数。下面是函数apply,参数是另一个函数f和一个值v,然后将f应用于v

def apply(f: Int => String, v: Int) = f(v)

注意:如果上下文需要,方法会自动强制作为函数使用。

下面是一个示例:

class Decorator(left: String, right: String) {
  def layout[A](x: A) = left + x.toString() + right
}

object FunTest extends App {
  def apply(f: Int => String, v: Int) = f(v)
  val decorator = new Decorator("[", "]")
  println(apply(decorator.layout, 7))
}

执行后输出为:

[7]

在这个示例中,因为方法apply需要,方法decorator.layout自动强制作为类型为Int => String的值使用。需要注意的是,方法decorator.layout是一个多态方法(这个方法抽象了签名类型),Scala编译器必须先适当实例化其方法类型。

相关文章

  • [译]Scala高阶函数

    Scala允许定义高阶函数。高阶函数以其它函数作为参数,或者其结果是一个函数。下面是函数apply,参数是另一个函...

  • Scala编程基础12:Scala函数3

    1.Scala高阶函数 高阶函数(Higher-Order Function)就是操作其他函数的函数。Scala允...

  • Scala的控制抽象

    高阶函数(Higher-order Functions) Scala 的控制抽象是根据高阶函数来进行的。高阶函数就...

  • 函数式编程理解

    函数式编程理解 1)Scala中函数的地位:一等公民2)Scala中的匿名函数(函数字面量)3)Scala中的高阶...

  • Scala高阶函数

    高阶函数 头等函数在Sacla中,函数可以像其他数据类型一样被传递和操作,也就是说函数就是一个值。import s...

  • Scala学习笔记 A2/L1篇 - 高阶函数 Higher-O

    教材:快学Scala chapter 12. 高阶函数 Higher-Order Functions 12.1 f...

  • Scala的高阶函数

  • Scala基础——高阶函数

    函数字面量 在非函数式编程语言里,函数的定义包含了“函数类型”和“值”两种层面的内容。但是,在函数式编程中,函数是...

  • scala(六) 高阶函数

    介绍 高阶函数:以函数作为参数或返回值的方法(函数)称为高阶函数。我的理解是高阶函数是一种思想,它的作用能让我们的...

  • [译]Scala嵌套函数

    在Scala中是可以定义嵌套函数的。下面定义了函数factorial,用于计算给定数字的阶乘: 程序输出结果是:

网友评论

    本文标题:[译]Scala高阶函数

    本文链接:https://www.haomeiwen.com/subject/yjtjtxtx.html