【问题标题】:What this meas in scala? [duplicate]这在scala中意味着什么? [复制]
【发布时间】:2014-09-03 14:27:05
【问题描述】:

刚接触scala,今天看到一个看不懂的函数定义:

def f(x: Int): Int = x
val func = (x: Int, y: Int, z: Int) => f(x)

那么在 Scala 中,定义 func 的语法是什么?对我来说,func 只是一个接受三个参数的函数:func: (Int, Int, Int) => Int = <function3>。为什么不直接将func 定义为

def func(x: Int, y: Int, z: Int): Int = f(x)

这是为了效率吗?因为我们只需要评估一次 val。

【问题讨论】:

标签: function scala


【解决方案1】:

func 被定义为一个包含具有该签名的函数的值,并使用这样的函数对其进行初始化。在将来的某个时候,在类方法中,您可以提供不同的功能。它将作为func(1,2,3) 调用,并根据当时实际分配给func 的函数返回结果。

这提供了一种替代方法来覆盖子类中的方法。例如,您可能有一个状态机实现,它需要根据状态以不同的方式响应输入;这将是通过更改接收函数的值来做出适当响应的可行方法。

【讨论】:

  • func 是 val。你不能重新分配它。
  • 我只能恳求早衰。你是对的。
猜你喜欢
  • 2016-05-18
  • 2014-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多