美文网首页
Kotlin基础语法

Kotlin基础语法

作者: 512DIDIDI | 来源:发表于2018-09-19 20:16 被阅读0次
    • 表达式函数可省略返回类型 返回类型自动推导
    /*表达式函数 返回类型自动推导*/
    fun sum(a: Int, b: Int, c: Int) = a + b + c
    
    • unit相当于java中的void 可省略
    /*unit就是void 默认不用写*/
    fun printSum(a: Int): Unit {
        println(a)
    }
    
    • kotlin中默认可见性为public而java中则为包可见
    • 可变长参数使用vararg修饰
    /*可变长参数函数*/
    fun vars(vararg v: Int) {
        /*foreach*/
        for (vt in v) {
            print("$vt ")
        }
    }
    
    • kotlin中关于空指针的一些判断
    fun printNullException(age: String?) {
        /*抛出空指针异常*/
        println(age!!.toInt())
    }
    
    fun notPrintNullException(age: String?) {
        /*空指针不做处理返回值*/
        println(age?.toInt())
    }
    
    fun printNullReturn(age: String?) {
        /*空判断处理 如果为空则返回-2*/
        println(age?.toInt() ?: -2)
    }
    
    • kotlin引入了lambda表达式 常量与变量
    /*
    * lambda表达式
    * val 相当于final var可变变量类型
    * (在类中声明属性时 val只提供getter仅供查询,var则多提供一个setter可写入)
    * */
    val sumLambda: (Int, Int) -> Int = { x, y -> x + y }
    
    • 类型判断以及自动类型转换
    fun getStringLength(obj: Any): Int? {
        if (obj is String) {
            /*做过类型判断后 obj转为String类型 调用的是String的length()方法*/
            return obj.length
        }
        return null
        /*判断了obj非非String后 obj就可以显式转换为String*/
        /*if(obj !is String)
            return null
        return obj.length*/
        /*&&右侧 obj会被自动转为String类型*/
        /*if (obj is String && obj.length>0){
            return obj.length
        }
        return null*/
    }
    
    • 范围值采用in ..方式
    fun printRangeNum(threshold: Int) {
        print("0..threshold: ")
        for (i in 0..threshold) {//i in [0,threshold]
            print(i)
        }
        print("\nthreshold..0: ")
        for (i in threshold..0) {//i in [threshold,0]
            print(i)
        }
        print("\n0..threshold step 2: ")
        for (i in 0..threshold step 2) {//添加步长
            print(i)
        }
        print("\nthreshold down to 0 step 2: ")
        for (i in threshold downTo 0 step 2) {//从大到小
            print(i)
        }
        print("\n0 until threshold: ")
        for (i in 0 until threshold) { //i in [0,threshold)
            print(i)
        }
    }
    
    • kotlin中引入了字符串模板(相当于创建了StringBuilder append()添加)
    fun printString(name:String){
       /*字符串模板编译后创建了一个StringBuilder,把常量与变量附加了上去*/
      println("hello $name")
    }

    相关文章

      网友评论

          本文标题:Kotlin基础语法

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