zoukankan      html  css  js  c++  java
  • kotlin 变量和常量

    变量

    • 如果你是一个java开发者你会觉得kotlin声明变量的方式非常的别扭,但是如果你是一个js开发者你就会觉得kotlin声明变量的方式非常熟悉,kotlin中声明变量必须使用var 和val关键字
    • var :声明的变量表示可变变量,可以通过重新分配来更改为另一个值的变量。这种声明变量的方式和Java中声明变量的方式一样
    • val:声明一个只读变量,相当于java中的final变量,一个val穿件的时候必须初始化,不能被改变
    //初始化
    var a: Int = 1
    val c: Int = 1
    
    //经过推导得出数据类型
    var b = 5
    val d = 50
    
    • var 和 val 是kotlin中定义变量必须使用的关键字
    • 每一行代码结束后可以省略 “;”

    类中声明以及可空变量声明

    • 顶层声明的情况下是可以不用实例化,实际上我们在开发中大多时候都是在一个类中定义一个变量,这种情况称为声明类的属性

    • 必须初始化,如果不初始化则要使用lateinit关键字

    class Test2() {
        var a: String? = "hello"
        val b: String? = null
        var c: String = "hello"
    
        init {
    
            println("a => $a 	 b => $b  	 c => $c")
        }
    }
    
    
    • 声明可空变量

      • 定义 var/val 变量名 : 类型? = null/确定的值
      • 声明时要用标准声明格式定义
      • ? 表示可空声明,不可省略
      • 初始化的值可以为null或确定的变量值

    后期初始化属性

    • 声明后期初始化属性的特点:

      • 使用lateinit关键字
      • 必须是可读且可写的变量,即用var声明的变量
      • 不能声明于可空变量
      • 不能声明于基本数据类型变量。例:Int、Float、Double等,注意:String类型是可以的
      • 声明后,在使用该变量前必须赋值,不然会抛出UninitializedPropertyAccessException异常
    • 延迟初始化属性

      • 延迟初始化:当程序在第一次使用到这个变量的时候在初始化
      • 使用lazy{}高阶函数,不能用于类型推断。且该函数在变量的数据类型后面,用by链接
      • 必须是只读变量,即用val声明的变量

    常量

    Kotlin中声明常量的方式和在Java中声明常量的方式有很大的区别

    //java中的常量
    private final int b = 10
    //等同于kotlin
    val a =6
    
    • 但是kotlin中 val 修饰的只是一个不可修改的变量,kotlin中定义常量需要使用关键字 const

    • const 只能修饰 val 不能修饰 var

    • 声明常量的三种方式

    //const关键字使用
    //顶层声明
    const val aaa: String = "aaa"
    
    //Object修饰类
    object vv {
        const val bb: String = "bb"
    }
    
    //伴生对象
    class cc {
        companion object {
            const val cc: String = "cc"
        }
    }
    
    

    注释

    • 单行注释: //注释内容 与java相同

    • 多行注释:/注释内容/ 与java相同

    • 嵌套多行注释:kotlin中块注释的级联使用,从视觉上给人一种层次分明的感觉

      /*
         注释1
         /*
              注释2
              /*
                 注释3
                 java中是不支持这种注释方式,但是在kotlin中是支持的。从视觉上给人一种层次分明的感觉。
             */
         */
      */
      
  • 相关阅读:
    使用RationalRose画活动图
    使用RationalRose画用例图
    UML工具RationalRose下载和安装
    使用BootStrap布局网站首页
    BootStrap入门
    使用JQuery发送请求局部刷新页面
    使用JQuery完成表单的校验(扩展)
    Window 由于未经处理的异常,进程终止。
    MySQL数据类型DECIMAL用法
    推荐收藏 —— MySQL视图详细介绍
  • 原文地址:https://www.cnblogs.com/xiaoxiaoliu/p/10907625.html
Copyright © 2011-2022 走看看