Scala控制结构
来源:互联网 发布:sql exists in 效率 编辑:程序博客网 时间:2024/05/21 17:43
package com.heres.scala/** * 1.Scala中基本控制结构,顺序、条件、循环。这和其它的JVM语言是一致的,但是Scala也有些 * 高级的流程控制结构,例如:模式匹配; * 2.这这里我们主要if 、for、while等三种控制结构及其企业级最佳实践,并且在最后用Spark源码说明。 */object Contros { def main(args: Array[String]): Unit = { println("Scala") /**if表达式 * 1.if else 表达式是有值的;这与java是不一样的。 * 2.if表达式中可以进行类型推导,类型推导的一般过程就是根据变量的值的类型推导确定变量的类型, * 这在很多复杂算法的实现的时候可以让我们省略变量类型的书写,为复杂算法的实现提供了非常大的便利。 * 3.如果if后面没有else部分,默认的实现是if(...) ... else () * * 下面的例子是截取自Spark核心类SparkContext,在else部分虽然不返回有意义的结果,但是依旧没有省略else * 而是使用了else{None}这种方式,其目的是为了确保if条件表达式的类型为处理逻辑需要的Option,而不是Any类型,为下一步处理打下基础。 * if (isEventlong...) {Some(logger)} else {None} * 4.有多条语句,可以用{}包裹,{}最后一条是返回值 * 5.if表达式可以用在for循环等其他结构中,用于限制结果 */ //1 var age = 11 val result = if (age > 25) "worker" else "student"//此时因为“worker”和“student”都是字符串,所以result也是字符串类型 println(result) //2 val result1 = if (age > 25) "worker" else 1 //此时因为if表达式中的else两侧的内容一个是字符串类型、另一个是整数类型,所有result1是两者类型的公共父类any //3 val result2 = if (age > 25) "worker" else () //Unit类型 println(result2) var x,y = 0 val result3 = if(age <18){ x = x+1 y = y+1 x+y } else 0 println(result3) for(i <- 0 to 5 if i%2==0){ println("for循环打印"+i) } /** * for循环是不断的循环一个集合,然后根据for循环的后面的{...}代码块部分会根据for循环(...)里面提取的集合item来作为{。。。}的输入 * 进行流程控制 * 1.for循环中加入的if叫做条件守卫,用于限制for循环(优化for循环,去掉不必要的执行步骤,或者说用于跳出for循环) * 2.最后再次强调一下,在for循环中能够提取出什么内容取决于后面的集合的类型; * 3.想跳出for循环的话,除了加入if守卫以外,还可以使用return关键字 */ //1 var flag = true var sum = 0 for(i <- 0 to 6 if flag){ sum = sum +i if (5 == i) flag = false } println("sum = "+sum) //2 for(i <- "Hello spark".split(" ")) println(i) //3 sum = 0 for(i <- 0 to 6 ){ sum = sum +i // if (5 == i) return //return 返回的是方法级别的,这里 } println("sum with return = "+sum) /** * while 循环也是循环集合来作为{...}的输入,进而完成流程的控制,while循环在实际Server和Framework开发中至关重要, * 例如让一个线程一直循环下去,一般都会使用while */ import scala.util.control.Breaks._ var n = true breakable{ while(n){ for(item <- "spark"){ println("while循环:"+item) if(item == 'r') { flag = false break } } } } println("while finished!!!") }}
阅读全文
0 0
- scala控制结构
- Scala控制结构讲解
- 2.scala控制结构
- scala控制结构
- Scala控制结构
- scala中的控制结构
- scala自定义控制结构
- Scala 控制结构内部揭密
- scala基础之控制结构
- scala学习三 控制结构
- Scala 控制结构和函数
- Scala学习笔记-控制结构
- Scala入门之控制结构
- Scala中的基本控制结构
- scala学习之控制结构
- scala基础之控制结构
- 【scala 笔记(4)】 控制结构 -- 自定义控制结构
- Scala创建新的控制结构
- duilib 入门四之UIBase
- Linux文件前面加点例如.bashrc表示什么意思
- H5 CSS基础二:清除浮动是个难点
- vue-cli for循环
- EventBus 源码试读(一)
- Scala控制结构
- 文章标题
- 判断某一年是否是闰年
- linux device tree 详解
- HDU-4291 A Short problem(矩阵快速幂)
- 虚拟机的桥接模式,NAT,仅主机三种网络模式
- Hacker(一)
- spring单例模式与线程安全问题的解决方案
- LightOJ 1422 Halloween Costumes