函数的定义关键字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