美文网首页从零开始学习Kotlin
第四章 Kotlin基本语法(2)

第四章 Kotlin基本语法(2)

作者: 红尘丶 | 来源:发表于2017-07-10 17:57 被阅读22次

    Kotlin虽然能调用java类库,但存在很大的语法差异,有语言基础的同学,学起来可以通过类比的方式循序渐进。由于我之前一直使用java进行Android开发,学起来比较顺手。

    参考网上资料整理了kotlin中的关键字(可能有遗漏,请回复补充)

    by、as、lazy、init、downTo、when、in、is、and、or

    声明:open、sealed、override、fun、inline、internal、data、companion、object、lateinit、var、val

    数据类型:Any(Object)、Unit(Void)

    基本类型:Byte、Char、Short、Int、Float、Long、Double、Boolean

    kotlin中基本数据类型作为对象存在,在实际开发中参考api使用。

    字符串

    不同于Java中的表现形式,使用$符号进行字符串拼接,$支持表达式,用{}括弧。

    val a = "test"//定义字符串

    val a1=a[1]//结果为e

    val b = "copy $a"  //字符串拼接使用$,结果为copy test,当然java中的+也支持,不推荐

    val c = "a+b=${a+b}"//$支持表达式,结果为a+b=copy testtest

    val d ="${'$'}9.99"//结果为$9.99

    if条件表达式

    kotlin中if不再是一个条件判断语句,而是表达式,有返回值,因此也不需要三目运算符(xx?xx:xx)。

    val a:Int=1

    val b:Int=2

    val c:Boolean=if(a<b) {

          print(a)

          true

      }else{

           print(b)

           false

       }  //返回true

    fun max(a:Int,b:Int) = if(a>b) a else b //判断大小,返回b

    另一个强大的判断语句when

    代替了java中的switch...case,条件可以是基本数据类型、字符串、表达式,语法自由的lambda表达式,具体参考如下实例代码。

    可将逻辑判断结果赋值给常量、变量,甚至可以作为函数返回值

    when语句必须包含else分支,类似java switch里的default分支。

    in关键字

    判断一个对象是否在某个区间内,使用in关键字,也可当做java中for each遍历数组、集合,也可判断某个元素是否在集合中,更多功能在实际开发中能使用到。

    in关键字的内部实现原理:

    for( int i = first ; i != last ; i += step){

    //.........

    }

    Return、Break和Continue

    这3个关键字在kotlin中的使用与java中略微不同,kotlin中任何表达式都可以使用标签(xx@)标记,并且函数可以嵌套,因此我们可以使用标签来限制return、break、continue的使用。

    上述运行结果是:

    i=1,j=5

    i=0

    continue,i=1,j=5

    i=2

    break,j=5

    i=3

    i=4

    continue,i=5,j=1

    Process finished with exit code 0

    通过运行上述代码,我们可以理解标签的作用,自己动手敲一遍代码比copy理解的更透彻。

    return的使用稍有不同,请看如下实例代码:

    运行结果:

    return,k=1

    return,k=3

    return,k=5

    return,k=7

    return,k=9

    Process finished with exit code 0

    代码简洁,实际操作过程中,可通过标签的有无运行上述代码进行理解。不多解释。

    相关文章

      网友评论

        本文标题:第四章 Kotlin基本语法(2)

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