Scala函数学习
来源:互联网 发布:java 视频播放控件 编辑:程序博客网 时间:2024/06/05 16:08
函数作为参数传递
代码如下:
package function/** * 用于测试函数的传递与高阶函数的调用 * * */object Function { def sum(f : Int => Int , a : Int ,b : Int): Int = if (a > b) 0 else f(a) + sum(f,a+1,b) def square(x : Int ) : Int = x*x def powerOfTwo(x : Int) : Int = if( x == 0 ) 1 else 2 * powerOfTwo(x-1) def main(a : Array[String]): Unit = { /*将第一个函数参数设置为默认的求平方的函数,然后输入后面的a,b*/ val f1 = sum(square,_ : Int , _ : Int) println(f1(2,5)) }}
输出结果:
54
返回值为函数
代码如下:
package functionobject FunctionReturn { def returnFunc(a : Int , b : Int) : (Int , Int) => Int = { def sum(a : Int,b : Int): Int = a+b //返回sum这个函数 sum } def main(a : Array[String]) : Unit = { val f = returnFunc(45,45) println(f) }}
输出结果:
<function2>
函数和柯里化
代码
def sum(f: Int => Int)(a: Int, b: Int): Int = if(a > b) 0 else f(a) + sum(f)(a + 1, b)
这样使使用函数更加方便,简洁
看下面的代码
package functionobject Functioncurrying { def sum(f : (Int,Int) => Int)(a : Int,b : Int) : Int ={ f(a,b) } def test(a : Int,b : Int) : Int = a+b def main(a : Array[String]): Unit = { //省略后面的参数 val f = sum(test)_ println(f(12,23)) }}
输出结果为35
0 0
- scala 函数学习
- scala学习之函数
- Scala函数学习
- scala学习1--函数
- scala学习(4)-函数
- Scala学习四: 函数
- Scala学习笔记17【Scala偏函数】
- scala学习五:scala函数式编程
- Scala 学习笔记(六)------Scala 函数嵌套
- scala学习笔记:理解函数
- scala 学习第二章 函数
- Scala学习第十弹 函数
- scala学习笔记之函数
- scala函数使用--学习笔记
- scala高阶函数学习
- Scala学习--函数式编程
- scala学习笔记 之 函数
- Scala学习笔记之Scala函数及函数式编程
- Realm
- gem install sass 本地配置和淘宝源无效的解决办法
- window程序一个线程中可以有几个消息队列?和几个消息循环
- 关于VMWare中Linux的默认root账号密码
- 用SAXReader解析xml文档
- Scala函数学习
- win7共享打印机
- 学习笔记之JavaSE(19)--面向对象编程10
- Tomcat的目录文件列表显示功能
- Archlinux下的firefox安装flash插件
- Android 写输入编辑框增加@功能,@相关字符高亮
- 建设一个能承受500万PV/每天的网站如果计算?
- java调SAP RFC接口
- hbase 数据export/import (No enum constant org.apache.hadoop.mapreduce.JobCounter.MB_MILLIS_MAPS)