一,函数 :完成特定功能的代码块
fun [函数名]([参数列表]):[返回值类型]{
[函数体]
}
fun [函数名]([参数列表])=表达式
匿名函数:无名氏函数,神一样的存在
fun([参数列表]) ...
二,注意:
功能要单一,望名知义,参数不要太多
三,最牛b的函数
package com.method
/**
* Created by jingwen on 19/4/13.
*/
fun main(args: Array<String>) {
println("jingwen say :hello world!")
}
输出结果:
jingwen say :hello world!
Process finished with exit code 0
package com.method
/**
* Created by jingwen on 19/4/13.
*/
fun main(args: Array<String>) {
println("jingwen say :hello world!")
var a = 1;
var b = 2;
var c = sum1(a, b)
var d = sum2(a, b)
var e = sum3(a, b)
var f = sum4(a, b)
println("方法1 $a+$b=$c")
println("方法2 $a+$b=$d")
println("方法3 $a+$b=$e")
println("方法4 $a+$b=$f")
}
fun sum1(a: Int, b: Int): Int {
return a + b;
}
fun sum2(a:Int,b: Int)=a+b
//牛B的无名氏
var sum3 =fun (a:Int,b: Int):Int{
return a+b
}
var sum4 =fun (a:Int,b: Int)=a+b
输出:
jingwen say :hello world!
方法1 1+2=3
方法2 1+2=3
方法3 1+2=3
方法4 1+2=3
Process finished with exit code 0
童鞋是不是被匿名函数吓到了?
下面几个是让你震惊:
具名参数,变长参数,默认参数,这几个也是很牛逼的
具名参数,给函数的实参,附上形参
package com.method
/**
* Created by jingwen on 19/4/14.
*/
fun main(args: Array<String>) {
var s = sum(b = 11,a = 99);
println("sum =$s")
say("jignwen",12)
//见证奇迹的时刻,具名了
say(age = 22,name = "zhulina")
}
fun sum(a:Int,b:Int):Int{
println("a=$a ,b=$b")
return a+b
}
fun say(name:String,age:Int){
println("hello :name =$name age=$age")
}
执行结果:
a=99 ,b=11
sum =110
hello :name =jignwen age=12
hello :name =zhulina age=22
Process finished with exit code 0
变长参数:
package com.method
/**
* Created by jingwen on 19/4/14.
*/
fun main(args: Array<String>) {
say(1,2,4,8)
say(99,4,5,1,name = "jingwen")
// val arrays = arrayOf(1,2,3,5,6,7,8)
// 这个能吓人,指针都出现了
// say(99,*arrays,name = "jingwen")
}
fun say( vararg at: Int){
at.forEach { println(it) }
}
//fun say( vararg at: Int,name:String){
// at.forEach { println(it) }
// println("name :$name")
//}
fun say(age:Int, vararg at: Int,name:String){
at.forEach { println(it) }
println("name :$name")
println("age :$age")
}
执行结果:
1
2
4
8
4
5
1
name :jingwen
age :99
Process finished with exit code 0
默认参数:
package com.method
/**
* Created by jingwen on 19/4/14.
*/
fun main(args: Array<String>) {
var s:Int = sumt(22,44);
println("sum = $s")
s = sumt(b = 22);
println("sum = $s")
s = sumt(22,3,"zhulian");
println("sum = $s")
s = sumt(b = 3);
println("sum = $s")
}
fun sumt(a:Int=6,b:Int ,name:String = "jingwen"):Int{
println("hello :$name")
return a+b;
}
fun sums(a:Int=6,b:Int ,name:String = "jingwen"):Int{
println("hello :$name")
return a+b;
}
执行结果:
hello :jingwen
sum = 66
hello :jingwen
sum = 28
hello :zhulian
sum = 25
hello :jingwen
sum = 9
Process finished with exit code 0