Kotlin 函数和函数表达式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/axuanqq/article/details/50969702

函数的定义关键字fun

函数中的参数定义(s:String) 变量名:变量类型

函数的返回值 fun myFun(s:String):返回值类型(如String)  函数中返回依旧return

例子:

    fun myFunc(name: String, age: Int): String {
        return "my name is $name age is $age";
    }

    fun myFunc1(name: String) {
        Log.d("--------", "my name is $name");
    }


调用:

    Log.d("------>", myFunc("xuan", 100)) ;
        myFunc1("xuan100");


结果:

03-24 10:46:19.353 11429-11429/com.xuan.kotlinapp D/------>: my name is xuan age is 100
03-24 10:46:19.353 11429-11429/com.xuan.kotlinapp D/--------: my name is xuan100

简单运算 可以不需要花括号

如:

    fun myFun2(name:String,age:Int):String="$name-$age";

参数默认值 可缺省

   fun addUser(name: String, age: Int = 100) {
        Log.d("------", "name is $name,age is $age");
    }


调用:

 addUser("xuan101");
        addUser("xuan",99);


03-24 10:52:31.203 25343-25343/com.xuan.kotlinapp D/------: name is xuan101,age is 100
03-24 10:52:31.203 25343-25343/com.xuan.kotlinapp D/------: name is xuan,age is 99

参数的不规则传递:

可以不按照声明参数的顺序传递参数,但是必须指定参数的名称

如:

      addUser(age=88,name="xuan");

is函数 类型检查:

    /**
     * Any 相当于java 的Object
     *
     */
    fun addUser1(user: Any) {
        if (user is String) {
            Log.d("----->","user[$user] is String");
        } else {
            Log.d("-----user","[$user] is not String");
        }
    }
  addUser1("name");
        addUser1(100);

03-24 11:05:41.043 21294-21294/com.xuan.kotlinapp D/----->: user[name] is String
03-24 11:05:41.053 21294-21294/com.xuan.kotlinapp D/-----user: [100] is not String
 

函数式的申明

/**

icourt
author:asange
email:[email protected]
 **/
fun main(args: Array<String>) {

    var i = { a: Int, b: Int -> a + b };
    var result = i(2, 3);
    println("result:" + result);

    println("result2:"+add(2,4));

    //函数的第二种声明方法
    var  j:(Int,Int)->Int={x,y ->x+y};
    var  result2=j(2,5);
    println("result2:"+result2);
}

//函数表达式
fun add(a: Int, b: Int): Int = a + b;

kotlin 默认参数和具名参数

/**

icourt
author:asange
email:[email protected]
 **/
fun main(args: Array<String>) {

    test();
}

fun test(PI: Float = 3.14f) {
    println("param:"+PI);
}

最后输出3.14
例子: kotlin 从键盘录取数据,做假发

/**

icourt
author:asange
email:[email protected]
 **/
fun main(args: Array<String>) {
    println("请输入第一个数字");
    var num1Str = readLine();

    println("请输入第二个数字");
    var num2Str = readLine();

    var num1: Int = num1Str!!.toInt();
    var num2: Int = num2Str!!.toInt();

    println("${num1}+${num2}==${num1 + num2}")

}


请输入第一个数字
1
请输入第二个数字
2
1+2==3

Process finished with exit code 0

猜你喜欢

转载自blog.csdn.net/axuanqq/article/details/50969702