scala - "def f(x:Int,y:Int)=x+y" 和 "def f(x:Int)(y:Int)=x+y" 的区别是?

查看:91
本文介绍了scala - "def f(x:Int,y:Int)=x+y" 和 "def f(x:Int)(y:Int)=x+y" 的区别是?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

第一个比较好理解,第二个不太直观
各自用途和意义何在呢?

解决方案

def f(x:Int,y:Int)=x+y是定义了一个简单的求和函数;def f(x:Int)(y:Int)=x+y是使用柯里化技术来定义这个求和函数,原来函数使用一个参数列表,柯里化把函数定义为多个参数列表。关于柯里化函数可以参看;柯里化其实本身是固定一个可以预期的参数,并返回一个特定的函数,处理批特定的需求。这增加了函数的适用性,但同时也降低了函数的适用范围,这属于高阶函数的内容,一般很少使用。

这篇关于scala - "def f(x:Int,y:Int)=x+y" 和 "def f(x:Int)(y:Int)=x+y" 的区别是?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆