Scala-函数参数和异常

函数参数

一、函数参数的求值

(1)Call by value(:)

对函数的实参求值,并且只求一次

(2)Call by name(: =>)

对函数的实参求值,并且只求一次

//Call by value
def sum(x : Int,y : Int) = x + x
sum(3+4,8) 
//sum(3+4,8) ---> sum(7,8) --> 14
//Call by name
def sum(x : => Int,y : => Int) = x + x
sum(3+4,8) 
//sum(3+4,8) --->(3+4) + (3+4) --> 14

二、函数参数的类型

(1)默认参数

当没有给参数赋值,就会使用默认值

def func(name : String = "Freedom") : String = "Hello" + name
func()  //Hello Freedom
func("Destiny")  //Hello Destiny
(2)代名参数

当有多个默认参数的时候,通过代名参数可以确定给哪个函数参数赋值

def func(str : String = "Hello",name : String = "Freedom") : String = str + name
func()  //Hello Freedom
func(name = "Destiny")  //Hello Destiny
(3)可变参数

类似于java的可变参数,即参数数量不固定

def sum(num : Int*) = {
	var result = 0
	for{s <- num}
		result += num
	result
}
sum(1,2,3,4)  //10

异常

try{
	var word = scala.io.Source.fromFile("C:\\tmp\\log.log").mkString
}catch{
	case ex : FileNotFoundException => {
		println("File Not Found Exception")
	}
	case ex : IllegalArgumentException => {
		println("Illegal Argument Exception")
	}
	case _ : Exception => {
		println("This is a Exception")
	}
}finally{
	println("end")
}

def func() = throw new Exception("Exception")
func: ()Nothing

懒值(lazy)

常量如果是lazy的,它的初始化会被延迟,推迟到第一次使用该常量的时候

var x : Int = 1
lazy var y : Int = x + 1
y : Int = <lazy>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值