美文网首页初见
kotlin 学习笔记 一

kotlin 学习笔记 一

作者: 天堂守望者 | 来源:发表于2020-06-10 22:13 被阅读0次

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。
    Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。
    在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。
    下面我们来看 kotlin的语法

    1定义常量 变量

    kotlin 中 代码结束不需要用 ; 结尾
    <标识符> var <变量名 > : <类型 > = <初始化值>
    例如
    var text : String ="kotlin"
    <标识符> val <变量名 >: <类型> = <初始化值>
    val num : Int = 1;
    var 和val 的区别 就是 val只能赋值 一次 和Java 中 的 final 用法一样

    class KolinTest {
        val a: Int = 1
        var str : String ="string"
        //你还可以这样写
        //不需要特意的去指定类型 系统自动推断变量类型为Int
        val b = 1
        fun main(args: Array<String>) {
            val c: Int      // 如果不在声明时初始化则必须提供变量类型
            c = 1           // 明确赋值
            var d = 5
            d += 1           // 变量可修改
            val x = 1
            // x = 2 报错 是编译不过得 val 只能赋值一次
        }
    
    }
    
    2函数定义

    函数定义使用关键字 fun
    格式为: fun <方法名>( 参数 : 类型) : 返回类型 如 Int(无返回类型 用 unit 关键字进行标识 类似Java 中的 volid )
    示例: fun test( v: Int) : Int { 方法体 }
    可变长函数 用 vararg 关键字进行标识 例如
    格式: fun <方法名>(vararg 参数 : 类型) : 返回类型
    示例 : fun test(vararg v:Int){ for(vt in v){print(vt) } ) // 输出12345 }
    test(1,2,3,4,5) // 输出12345

    
    
    class KolinTest {
      fun main(args: Array<String>) {
        var d=test(1,3);//  d=4
        vars(1,2,3)// 输出 123
       }
    
      //标准写法                  
       fun test(a: Int, b: Int): Int {
            return a + b;       //返回 a+b
         }
    
     //表达式作为函数体,返回类型自动推断
       fun sum(a: Int, b: Int) = a + b
    // 注意: 若 用 public 修饰 又返回值  必须写上返回类型 
    public fun sum(a: Int, b: Int): Int = a + b
    
    //无返回值   Unit  也可以省略不写    fun test ()  对于public方法也是这样
      fun test () :   Unit {
      
      }
    // 可变长 函数 
    fun vars(vararg v:Int){
        for(vt in v){
            print(vt)
        }
    }    
    }
    
    
    3 null 检测机制

    Kotlin的空安全设计对于声明可为空的参数,在使用时要进行空判断处理,有两种处理方式,字段后加!!像Java一样抛出空异常,另一种字段后加?可不做处理返回值为 null或配合?:做空判断处理 和Java中的三元表达式相似
    var <变量名> :<类型> ?= <初始化值> 默认值
    例如: var str:String ?=null 表示的是 str 是String 默认值为 null

      
    
    class KolinTest {
    
        companion object {
    
            //类型后面加?表示可为空 如果后面不加? 则表示不可以为空 必须要有初始化的值
            //初始化值不可为 null  如 var text: String = null 是错误的  正确写法 var text: String ? = null
            var num: String? = "123"
    
            // 抛出异常 !! 和java 中 的 关键字 throws
            var page = num!!.toInt();
            var num2: String? = null
            //num2 为null  则 page2=-1 如不为null 则 page2=num2.toInt()
            val page2 = num2?.toInt() ?: -1// 输出结果 page2=-1
    
            /** 我是main入口函数 **/
            @JvmStatic
            fun main(args: Array<String>) {
                print(page)
                println()
                print("page2=" + page2)
                println()
    
    
                val x = parseInt(null)
                val y = parseInt("1")
                // 直接使用 `x * y` 会导致错误, 因为它们可能为 null.
                if (x != null && y != null) {
                    // 在进行过 null 值检查之后, x 和 y 的类型会被自动转换为非 null 变量
                    print(x * y)
                } else {
                    print("x 或 y 的值 其中一个为null")
                }
            }
    
            fun parseInt(str: String?): Int? {
    
                return str?.toInt()
            }
        } 
         //  输出 结果
         //  123
         //  page2=-1
         //  x 或 y 的值 其中一个为null
    
    }
    
    4 类型自动转换

    相关文章

      网友评论

        本文标题:kotlin 学习笔记 一

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