1.函数
2. 函数声明
fun 函数名(参数列表) : 返回值类型 { 函数体 return 返回值 }
3. 返回值声明
/**
* 没有返回值的函数
*/
fun makeFood():Unit{
println("正在做饭...")
}
/**
* 有返回值的函数
*/
fun getName():String{
return "Tom"
}
/**
* 返回值为Nothing函数
*/
fun writeFile():Nothing{
throw Exception()
}
4. 函数参数
4.1 命名参数调用
fun main(args: Array<String>) {
sayInfo(age = 19,name = "Tom")
sayInfo("lucy",20)
}
fun sayInfo(name:String,age:Int){
println("name:$name age:$age")
}
4.2 默认参数调用
fun main(args: Array<String>) {
sum()
sum(20.0)
sum(50.0,30.0)
}
fun sum(a:Double=10.0,b:Double=20.0){
println("$a + $b =${a+b}")
}
10.0 + 20.0 =30.0
20.0 + 20.0 =40.0
50.0 + 30.0 =80.0
4.3 可变参数调用
fun main(args: Array<String>) {
getToal(1,2) //3
getToal(1,2,3,4,5) //15
}
fun getToal(vararg num:Int){
var toal:Int=0;
for (i in num){
toal+=i
}
println(toal)
}
5. 表达式函数
如果在函数体中表达式能够表示成为单个表达式时,那么函数可以采用更加简单的表示方
式
//原始写法
fun getNameLength(name:String):String{
return name.length
}
//简写
fun getNameLength(name:String)=name.length
6. 局部函数
函数套函数
fun getToalNum():Int{
var toal:Int=0
fun toal(vararg nums:Int){
for (i in nums){
toal+=i
}
}
toal(2,3)
return toal
}
7. 匿名函数
fun main(args: Array<String>) {
getnums("+")(10,20)
}
fun getnums(c:String):(Int,Int)->Int{
if (c=="+")
return fun (a,b)=a+b
else
return fun (a,b)=a-b
}