学习scala的点点滴滴(3)---一切皆对象
来源:互联网 发布:汉语彝文在线翻译软件 编辑:程序博客网 时间:2024/06/05 03:56
单纯从面向对象的角度来看待scala,可以说scala就是一门纯面向对象的编程语言,因为在scala中,一切都可以看做是对象。这点和java是不同的,java中区分基本数据类型和引用类型。
- 数字对象
5210000 + 1 *1024 / 1
在java中这就是基本的运算,但是scala中认为一切皆是对象,所以每个 数字你都可以当一个对象来处理,可以写成如下形式:
(5210000).+(((1).*(1024))./(1))
函数对象
这点也是scala函数式编程的一大亮点。函数可以作为参数来传递,也可以用变量来存储,还可以用函数来返回一个函数。object FunctionDemo extends App { def printResult(fun: (Int, Int) => Int): Unit = println(fun(4, 5)) def add(x: Int, y: Int): Int = x + y printResult(add(_: Int, _: Int))}
代码中定义了两个函数,printResult函数,add函数。
- printResult函数的参数为接受一个函数,并返回Unit。
- add函数的参数为两个Int类型的参数,并返回Int类型。
最后一句代码函数调用,打印出求和结果。
匿名函数
在上面的例子中,add函数仅被调用过一次,这中情况下,我们可以不用单去定义,而是直接在调用出传第一个相应形式的函数即可,在scala中我们称之为匿名函数(anonymous functions,通俗解释:没有名字的函数。)
改用匿名函数后的代码如下:
object FunctionDemo extends App { def printResult(fun: (Int, Int) => Int): Unit = println(fun(4, 5)) printResult((x, y) => x + y)}
(x, y) => x + y
就是一个匿名函数,这里类型可以自动推断。如果单独定义一个匿名参数还是需要指定参数类型的。
如:
(x:Int,y:Int)=>x+y
=> 左侧是函数参数列表,=>右侧是函数体。
0 0
- 学习scala的点点滴滴(3)---一切皆对象
- 学习scala的点点滴滴(1)
- 学习scala的点点滴滴(2)-与java交互
- 学习scala的点点滴滴-模式匹配
- Scala Tutorial中英对照:和Java交互,一切皆对象
- java学习总结(1)---一切皆为对象
- java编程思想学习笔记(2)--一切皆对象
- 面向对象:"一切皆对象”的困惑
- 学习live555的点点滴滴(一)
- 学习路上的点点滴滴(二)
- 学习debian的点点滴滴
- 学习Java的点点滴滴
- 学习的点点滴滴
- 学习路上的点点滴滴
- 记录学习的点点滴滴
- JAVA学习的点点滴滴
- 记录学习的点点滴滴
- 学习Python的点点滴滴
- 初学动态代理
- C++ 界面库
- 软件测试环境基础
- Andrew Ng机器学习笔记+Weka相关算法实现(二)生成学习/朴素贝叶斯
- Linux命令之文件系统(六)
- 学习scala的点点滴滴(3)---一切皆对象
- 手把手教你画一个 逼格满满圆形水波纹loadingview Android
- 验证码一个简单的实现
- 广大校赛第八届C题
- iOS后台解析
- git rebase 使用
- hdu3018Ant Trip
- 关于BLE的android开发,你该知道的一切
- 某易iOS开发面试题