默认参数的使用数组
能够在方法的参数中设置值做为它的默认参数值bash
fun reformat(str: String = "11",isTrue: Boolean = false){
println(str)
println(isTrue)
}
复制代码
使用默认参数在调用的时候就能够不传递参数ui
//使用默认参数
reformat()
复制代码
具名参数的使用spa
具名参数就是指定参数名对其赋值,这样的好处就是在传参数的时候不须要考虑一一对应,另外由于Kotlin的参数传递的灵活性,在传递参数时很容易出现歧义,这时候能够经过具名参数来消除歧义。code
//使用具名参数,能够指定具体的参数
reformat(isTrue = false,str = "a")
复制代码
变长参数的使用orm
变长参数能够对一个参数赋多个值,须要用到vararg关键字jwt
fun becomeLong(vararg args: Int,str: String){
args.forEach { println("$str $it")
}
}
复制代码
传递多个值给变长参数string
becomeLong(1,2,3,4,str = "jwt")
复制代码
由于变长参数多个值的缘由,str这个参数须要用具名参数来消除歧义it
传递一个数组的值给变长参数,可使用 * 运算符来实现io
var array = intArrayOf(1,2,3)
becomeLong(*array,str = "jason")
复制代码
使用 * 它会把数组元素分开依次传给变长参数
Kotlin的异常的捕获也是经过try-catch块来捕获的
举个栗子,一目了然:
fun main() {
var args: Array<String> = Array(3){"0"} //初始化数组,构造方法的参数(size: Int, init: (Int) -> T)
args.set(0,"2")
args.set(1,"1")
try {
var x = args[0].toInt()
var y = args[1].toInt()
println("$x + $y = ${sum(x,y)}")
}catch (e: NumberFormatException){
println("须要输入的数据类型是整数")
}catch (e: ArrayIndexOutOfBoundsException){
println("须要输入两个整数")
}catch (e: Exception){
println("捕捉到程序异常")
}finally {
println("求和计算完成")
}
}
fun sum(x: Int,y: Int): Int{
return x + y
}
复制代码
对求和过程的出现的具体异常进行捕获处理,不管结果如何最终都会执行finally方法块。