小编Mad*_*dhu的帖子

def关键字vs rocket(=>)表示法改变了scala中的函数行为?

我正在学习Scala,我正在尝试理解定义函数的第一种方法背后的原因引发错误"+","v1"和"v2"未找到,而下面列出的第二种方法有效.

方法1: - 使用Lambda表达式表示法:

val addVectLambda = (v1:Vect3,v2:Vect3):Vect3 => (v1._1 + v2._1, v1._2 + v2._2, v1._3 + v2._3)
Run Code Online (Sandbox Code Playgroud)

方法2: - 使用def关键字:

def addVect (v1:Vect3, v2:Vect3):Vect3 = (v1._1 + v2._1, v1._2 + v2._2, v1._3 + v2._3)
Run Code Online (Sandbox Code Playgroud)

如果已经提出这个问题我很抱歉 - 我试图搜索但找不到答案.真正感谢任何帮助/指导.

谢谢

编辑:产生错误消息的完整代码:

type Vect3 = (Double, Double, Double)
val addVectLambda = (v1:Vect3,v2:Vect3):Vect3 => (v1._1 + v2._1, v1._2 + v2._2, v1._3 + v2._3)
Run Code Online (Sandbox Code Playgroud)

错误消息:

error: not found: type +
val addVectLambda = (v1:Vect3,v2:Vect3):Vect3 => (v1._1 + v2._1, v1._2 + v2._2, v1._3 + …
Run Code Online (Sandbox Code Playgroud)

lambda scala function

3
推荐指数
1
解决办法
124
查看次数

标签 统计

function ×1

lambda ×1

scala ×1