Scala-02:函数定义、流程控制、异常处理入门实战
来源:互联网 发布:大众软件电子版 pdf 编辑:程序博客网 时间:2024/05/21 10:50
Scala函数定义:
def 函数名(参数列表,...):返回结果类型={},下面给出一个max函数
def max(a: Int,b: Int):Int ={if(a > b) aelse b}var maxValue = max(6,10)println("max(6, 10) the max maxValue is :" + maxValue )println("max(6, 10) the max is :" + max(6,10) )返回结果是较大的值
max(6, 10) the max maxValue is :10max(6, 10) the max is :10
1,有时函数必须制定返回结果类型,如函数时递归,就必须明确制定返回结果类型
2,在max这里例子中及时不写返回结果,编译器也能推断,如实这个函数就 编程如下的样子,作用功能都没有变化
def max2(a: Int,b: Int)={ if(a > b) a else b }
3,如果函数仅 一个语句,连花括号都可以不写。如是max函数就成了这样,作用功能仍然没有变化def max3(a: Int,b: Int)=if(a > b) a else b
Scala流程控制:scala中的if else和java中的基本一致,如下代码:
object ControlStatementIfElse { def main(args: Array[String]) { val k=5 if (k>10) { println("k is more than 10") } else if(k<0) { println("k is less than 0") } else { println("k is between 1 and 10") } }}
这里的if else基本和java/c是一致的。我们继续看下while语句
object ControlStatementWhile { def main(args:Array[String]) { var i=0; var sum=0 while (i<10) { sum += i i += 1 } println(sum) }}
while语句的语法也很简单,需要注意在scala中数字类型没有++ --方法
下面看一下scala中的for循环语句
import scala.util.control.Breaks._import scala.util.Randomobject ControlStatementBreak { def main(args:Array[String]) { breakable { while (true) { val r = new Random() val i = r.nextInt(10) println("i==" + i) if (i == 5) { break } } } }}
在这段代码中首先我们import了scala.util.control.Breaks._,这样我们就可以使用breakable,和break语句了。
我们在while语句的外面用breakable语句块包围了,然后在需要break的地方调用break方法,这里的break不是关键字,而是一个scala的方法,这个方法会抛出异常,从而中断循环。
下面我们看下scala中break实现的方式,首先看breakable,其实它也是一个函数。
其代码如下:
def breakable(op: => Unit) { try { op } catch { case ex: BreakControl => if (ex ne breakException) throw ex } }
breakable接受一个函数做参数,他会在这个要执行的函数op旁添加try catch,如果catch住的异常是breakException,那么不做处理,如果不是则抛出异常。
我们再看下break函数的实现:
def break(): Nothing = { throw breakException }
这个函数返回值是Nothing,在它的方法体内直接抛出了breakException
0 0
- 02Scala-函数定义、流程控制、异常处理入门实战
- Scala-02:函数定义、流程控制、异常处理入门实战
- 002-Scala函数定义、流程控制、异常处理入门实战
- 2.Scala函数定义、流程控制、异常处理入门实战
- Scala 深入浅出实战经典 第2讲 Scala函数定义、流程控制、异常处理入门实战
- Scala学习第二天:Scala函数定义、流程控制、异常处理入门实战
- scala初学之函数定义、流程控制、异常处理入门
- Scala-02函数定义、流程控制、异常处理
- Dt大数据梦工厂王家林老师 Scala实战详解之 第2讲Scala函数定义,流程控制,异常处理入门实战
- 王家林亲传《DT大数据梦工厂》第二讲Scala函数定义、流程控制、异常处理入门
- 第2讲:Scala函数定义、流程控制、异常处理入门
- scala 基本语句-流程控制与函数定义、异常处理
- 关于scala 函数定义 流程控制 异常处理
- 【Scala学习笔记】2. 函数定义、流程控制、异常处理
- Scala-01:函数定义、流程控制、异常处理
- scala函数定义、流程控制与异常处理
- Scala的函数定义、流程控制和异常处理
- [0.3] scala函数定义、流程控制与异常处理
- 指针总结(—)
- 泛型继承的几种写法
- HDU 1335 (16进制以下)把m进制转换为n进制
- 19.Remove Nth Node From End of List
- 洛谷1028
- Scala-02:函数定义、流程控制、异常处理入门实战
- Android四大组件之一——Broadcast Receiver
- Eclipse下如何运行微信SDK_Demo
- RxJS入门(3)----深入Sequence
- 从一个Activity直接跳转到一个Fragment中,进行相应的操作
- 数组首地址与数组名取地址的区别
- 拦截/监听器 —— Filter、Interceptor、Listener
- LeeCode-Pow(x, n)
- 证书分享给别的电脑用