第76讲:模式匹配下的赋值语句
来源:互联网 发布:条件选股软件 编辑:程序博客网 时间:2024/05/22 09:48
赋值操作背后的模式匹配,赋值过程可能返回多个值,此时为了接受多个值,我们可能用tuple定义几个变量来处理。
实例代码,如下
//@是别名的意思,a@b形成了tuple2二元元组 //把1000赋值给a和b,并返回二元组的内容给val a@b var a@b = 1000 println("a=" + a + ",b=" + b) b = 2000 //修改b的值,发现a值没有变化 println("a=" + a + ",b=" + b) a = 3000 //修改a的值,发现b值没有变化 println("a=" + a + ",b=" + b) //总上,a@b可以理解为分别定义了a,b两个变量 ,赋值为1000 val (c,d)= (1000,2000) // 分别向c,d赋值为1000,2000 println("c=" + c + ",d=" + d) //val (e,F) = (1000,2000) //编译报错,编译器会把F当作常量的模式进行匹配, //如果没有定义F就会报错,所以匹配时通常为小写 val Array(g,h) = Array(110,200) object Test {val 1 = 1 } object Test2 {val 2 = 3 }
For 循环中的模式匹配,可以过滤数据,数据处理方面使用。
for(i<-List(1,2,3,4,5)) println(i) //实际上调用的是foreach for(index@"Flink" <- List("hadoop","spark","Flink")) println(index) //为参数起了个别名进行匹配 for((language,"hadoop") <- Set("scala"->"spark","java"->"hadoop")) println(language) //给一个参数初始化进行匹配 for((k,v:Int) <- List(("spark",5),("hadoop","bigdata"))) println(v) //通过类型进行匹配
运行结果为:
a=1000,b=1000
a=1000,b=2000
a=3000,b=2000
c=1000,d=2000
参考资料:
百度网盘:http://pan.baidu.com/share/home?uk=4013289088#category/type=0
微信号:18610086859
DT大数据微信公众账号:DT_Spark
DT大数据梦工厂交流群:462923555/418110145/437123764
0 0
- 第76讲:模式匹配下的赋值语句
- 第76讲:模式匹配下的赋值语句
- scala 第76讲:模式匹配下的赋值语句
- 第76讲:模式匹配下的赋值语句学习笔记
- Scala深入浅出进阶经典 第76讲:模式匹配下的赋值语句
- Scala模式匹配下的赋值语句
- Scala模式匹配下的赋值语句
- Scala 模式匹配下的赋值语句
- Spark进阶视频之模式匹配下的赋值语句
- 第75讲:模式匹配下的For循环
- scala 第75讲:模式匹配下的For循环
- 第75讲:模式匹配下的For循环学习笔记
- 第77讲:模式匹配下的提取器动手构造实战学习笔记
- scala 第77讲:模式匹配下的提取器动手构造实战
- 第77讲:模式匹配下的提取器过程分析
- Scala深入浅出进阶经典 第75讲:模式匹配下的For循环
- Scala深入浅出进阶经典 第77讲:模式匹配下的提取器动手构造实战
- scala进阶24-赋值语句与模式匹配
- Java虚拟机类加载和执行机制
- C# 遍历文件夹及其子文件夹来查找某个文件
- scala学习之for与function的认识
- python中的zlib模块提供了压缩和解压缩的方法
- android 何时使用Service 何时使用Thread
- 第76讲:模式匹配下的赋值语句
- 深入hibernate的三种状态
- Java基础------多线程
- 服务器启动时Webapp的web.xml中配置的加载顺序
- 简单的Demo(按两次返回键退出)
- 就算全世界都觉得你不行那又怎样
- HDU 5347 MZL's chemistry(高三化学选修题)
- c++ 计算程序运行时间
- Java:进程与线程