scala语言的一些特技
来源:互联网 发布:小矮星彼得性格知乎 编辑:程序博客网 时间:2024/05/01 22:53
用scala语言做spark项目也有一年了,虽然scala语言也是运行在jvm上面,但其是动态语言,还有很多之前从来没见过的特技,这里写这篇文章记录一下。
1.case class样例类
case class样例类初始化的时候不需要用new来初始化,而且此样例类自带了toString,hascode,equals等方法,这个样例类最多的用途是用来做模式匹配
case class Person(name:String) val v1 = Person("xiong") v1 match { case Person(name) => name case _ => } //匹配出name为xiong
2.花括号何时代替小括号
这个问题也困扰我很久了,之前一直不大明白,查了一下说是括号里面其实只有一个参数的话这个小括号就可以用花括号来代替,目前看来主要是用来那些函数调用的时候,比如这样:
scan(t1, cf, startRow, stopRow){ r => //TODO process result }
3.implicit隐式转换
这个也比较奇怪,只要在这个类或者代码块范围内定义了implicit方法,如果调用函数的时候发现参数类型不匹配的话,scala会自动的去调用这个implicit方法,不管implicit方法是叫啥名,scala只关心的是这个implicit的输入和输出类型是否与他所需要的类型转换所匹配
implicit def str2Int(s:String):Int = Integer.parseInt(s) //隐式str转int def add(a:Int, b:Int) = a+b add("1",2) //先把"1"隐式转换为1,再加起来4.yeild关键字
yeild一般用在for循环中,记住yeild返回的也是一个数组
5.模式守卫
模式守卫一般用在case匹配中,其实相当于case匹配中再加入一个if语句而已
10 match { case n:Int if 1< n => println(n) //if到=>之前,这段为模式守卫 case _ => }
阅读全文
0 0
- scala语言的一些特技
- Scala语言一些的一些注意事项汇总(1)
- Scala语言之 一些标识
- scala的一些例子
- Scala语言一些注意事项汇总(2)
- PV3d特技--飞动的文字
- 高并发的限流特技
- 关于Scala的一些文字
- Scala的一些最佳实践
- 学习Scala的一些参考资料
- Scala的一些最佳实践
- 有趣的 Scala 语言: 简洁的 Scala 语法
- 有趣的 Scala 语言: 简洁的 Scala 语法
- VB: 制作下雪的特技景象
- 用VB制作下雪的特技景象
- 用VB制作下雪的特技景象
- PV3d特技--文字的爆破与合成
- 【BZOJ1199】【HNOI2005】汤姆的游戏 特技
- 大数据已成战略性资源 各行业需求急增
- docker compose php环境
- 【Python初学笔记】no.1列表的使用之超市购物示例
- UISsearchDisplayController搜索内容
- 文章标题
- scala语言的一些特技
- Windows安全检查脚本 bat 批处理
- 日历插件
- Java 基础温习
- 产品经理常见问题
- Schlumberger.Visual.MODFLOW.Flex.2015.1.Win32_64 2CD
- sun.security.action.GetPropertyAction
- MVC模式到底是个什么
- springmvc+jsp/html 前后台交互(三):controller和html页面交互