首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这两个scala函数定义的区别

这两个scala函数定义的区别
EN

Stack Overflow用户
提问于 2015-09-29 03:35:50
回答 1查看 70关注 0票数 1

我正在读school/basics.html的Scala学校基础教程。

我试图理解这两种定义之间的区别。

此外,如果有人可以解释在这种情况下的竞争与部分应用。

def multiply(m: Int)(n: Int): Int = m * n

def multiply(m: Int,n: Int): Int = m * n

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-29 05:56:24

不同之处在于您如何真正地调用此方法。在第二种情况下,您唯一的选择是同时传递两个参数,比如multiply(2,2)。在first情况下,您可以传递一个参数并获得函数Int => Int,然后用另一个参数调用它:

代码语言:javascript
复制
val f: Int => Int = multiply(2) _

f(2) // 4
f(3) // 6
f(525) // 1050

咖喱方法的真正强大之处在于第二个参数是隐式的,因此不必显式传递它。

代码语言:javascript
复制
implicit val x = 2
def multiply(m: Int)(implicit n: Int): Int = m * n

multiply(5) //10
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32835267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档