每天学习一点Scala05_函数-创新互联
Scala将函数当作一等公民;一个函数可以像一个变量一个被使用;
十余年的太仆寺网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整太仆寺建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“太仆寺网站设计”,“太仆寺网站推广”以来,每个客户项目都认真落实执行。函数可以作为输入参数传给另一个函数;
函数可以定义为一个匿名函数字面量,就像字符串字面量;
函数可以被赋给一个变量;
可以在一个函数内定义函数;
函数可以作为另外一个函数的返回值;
在Scala中,使用关键字def定义函数;格式如下:
def 函数名(参数1:数据类型,参数2:数据类型):输出类型 = { 函数体 }
例:
def add(firstInput:Int,secondInput:Int):Int = {
val sum = firstInput + secondInput;
return sum;
}
上例的简洁版本如下(省略了输出类型,scala会自动进行类型推断):
def add(firstInput:Int,secondInput:Int) = firstInput + secondInput
Scala支持不同类型的函数,包括:
方法.一个对象的成员函数称为方法.该方法可以访问所属对象的所有字段;
本地函数.在另一个函数或方法内部定义的函数称为"本地函数";它能访问外部函数的变量和输入参数.本地函数只对它所定义的外部函数可见.
高阶方法(higher-order method).一个将一个函数作为输入参数的方法,称为"higher-order method".类似的,一个high-order function是将另一个函数作为输入的函数.高阶方法和高阶函数帮助减少代码重复.此外,使用它们还可以写出更简洁的代码;
下面是一个简单的高阶函数:
def encode(n:Int,f:(Int)=>Long):Long = {
val x = n * 10;
f(x);
}
这段代码输入两个参数,返回一个Long类型的值.第一个输入参数类型是Int.第二个输入参数类型是一个函数f,此函数f需要一个Int类型输入参数,并返回一个Long类型值.
函数字面量.函数字面量指的是一个未命名或匿名函数.在程序中可以像使用一个字符串变量一样使用它.它还可以作为一个输入参数传递给一个高阶方法或高阶函数.另外,它也可以被赋给一个变量.下面是一个函数字面量的例子:
(x:Int) => {
x + 100;
}
字面量函数的定义是使用一个小括号,里面是输入参数,后跟一个右箭头和一个函数体.
上面代码的一个简写版本是: (x:Int) => x + 100;
之前定义的高阶函数encode可以使用一个函数字面量作为输入参数,如下所示:
val code = encode(10,(x:Int) => x + 100);
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页题目:每天学习一点Scala05_函数-创新互联
当前链接:http://myzitong.com/article/dsjpge.html