美文网首页
Kotlin学习

Kotlin学习

作者: 水瓶鱼 | 来源:发表于2018-02-27 14:50 被阅读10次

基本语法

  • 声明变量
val a:Int=1 // val 标识的变量不可变 相当于java中的final
var a:Int=0 // var 标识的变量为可变变量
var a:Int=null // 显示声明可空变量

//Kotlin 中没有标识变量,方法为静态的关键字
class A{
    companion object{
        //在这里声明的变量,方法相当于Java中的静态变量,方法
    }
}

lateinit var o:Object //lateinit:修饰变量表示这个变量会在使用之前由用户主动赋值,使用时不再做非空判断,如果使用时未赋值,会抛出空异常。
  • 类继承
class Base(Int a,Int b){}

class A(Int a,Int b) : Base(a,b){
    //初始化代码块
    Init{}
}
  • 方法声明
/**
*定义一个方法,方法的参数可以有默认值,返回值类型为Int
*/
fun a(a:Int,b:Int,c:Int=0):Int{
    return 0
}
//调用方法
a(0,0,1)

a(0,0)  //参数c 使用默认值

a(a=0,b=0,c=1) // 

与Java的不同点

  • 没有三元操作符

Kotlin中if 可以是一个表达式,因此没有三元操作符

//java:
int a=b>c?b:c;
//kotlin:
val a=if (b>c) b else c
  • 没有switch 关键字,相同功能可使用when代替
var a=3
when(a){
    1->...
    2->...
    else->...
}
  • Kotlin 中class 默认为final类,不能被继承,如果想拥有子类,需用 open 关键字修饰

方法

  • lambdas

lambda表达式由{}包裹,-> 符号 前边是参数,后边是body,如果函数有返回值,最后一行为返回值。

如果lamdba只有一个参数,可省略参数和->符号,在body中 it 表示入参

如果参数有多个并且部分参数在body 中不会使用可用 _ 表示

// lambdas 使用示例

// fun1 使用方法作为参数
fun fun1(noMeaning(a:Int,b:Int)->Int){}
// 调用fun1 并使用lamdba作为参数
fun1({1,2->2})
// 
fun1({_,_->3})

相关文章

网友评论

      本文标题:Kotlin学习

      本文链接:https://www.haomeiwen.com/subject/lwfmxftx.html