kotlin函数

一,函数 :完成特定功能的代码块

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

猜你喜欢

转载自blog.csdn.net/jingwen3699/article/details/89290664