总结一下今天的知识点(建议有基础的童鞋可以参考,有不对的地方,希望大神指正)
- 变量和常量的声明:
智能类型推断
eg:var i=10;
i=99999999999999999;
那此时变量i从int类型转变成了long;如果想显式的定义:var i:Long=999…
其他的例如:var i:Int=10 var i:Double var s:String=””
用val修饰的值是常量,不能再进行修改,只读数据类型;var声明的是变量
- 函数的定义
函数用fun声明函数/方法,如果是继承的父类,再加上override
eg:override fun onResume()
eg:没有返回值:fun a(){}
返回值:
fun a(x:Int,y:Int):Int{return x+y;}
eg:fun showString(s:String):String{
return "我是你${s}${s.length}"
}
如果想让函数可以接收null,函数的接收类型后面要加上?
fun showString2(s:String?):String{
return "我是你"+s
}
关于kotlin中函数的写法,可以有多种衍生,这里做个总结
fun add(a:Int,b:Int):Int{
return a+b
}
//如果只有1条返回值,上面的方法可以进行简化
fun add2(a:Int,b:Int)=a+b
//函数表达式写法
var add3={x:Int,y:Int -> x+y}
//add3还可以演化为
var add4:(Int,Int)->Int={x,y ->x+y}
对于以上调用的话,也很简单:
Log.e("sujd===1",""+add(1,2))
Log.e("sujd===2",""+add2(1,2))
Log.e("sujd===3",""+add3(1,2))
Log.e("sujd===4",""+add4(1,2))
- 默认参数和具名参数
举个例子:比如我要求一个圆形的面积,那此时都会用到π,
圆形的面积=π*r*r;
val pai=3.1415926f;//float类型
fun mianji(Pi:Float=pai,r:Float):Float{
return Pi*r*r
}
//具名参数的调用
Log.e("sujd===",""+mianji(pai,2f))
//默名参数的调用
Log.e("sujd===",""+mianji(r=2f))//这里的r就是方法中的r