带你初识Kotlin(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28898075/article/details/88304048

上一节 简单认识了下kotlin的基本类型和常用流程控制,这节继续学习

一、Kotlin 变量声明

首先,kotlin变量的声明必须使用关键字varval

  • var: 用此关键字声明的变量表示可变变量,即可读且可写。相当于Java中普通变量
  • val: 用此关键字声明的变量表示不可变变量,即可读且不可写。相当于Java中用final修饰的变量

1.1基础用法:

关键字 变量名:数据类型 = xxx

eg:

//立即初始化
var var_a: Int = 10 
//推导出类型
var var_b = 5
//没有初始化的时候,必须声明类型
var var_c :Float
var_c = 12.4f
println("var_a => $var_a \t var_b => $var_b \t var_a => $var_c")
//$符号表示引用的意思

注意:在类中声明变量时,必须初始化,如果不初始化,需要使用lateinit关键字IntelliJ IEDA中爆红并提示

1.2声明可空变量:

  • 在声明的时候一定用标准的声明格式定义。不能用可推断类型的简写。
  • 变量类型后面的?符号不能省略。不然就和普通的变量没区别了。
  • 其初始化的值可以为null或确定的变量值。

定义:

var/val 变量名 : 类型? = null/确定的值

eg:

  var var_a : Int? = 0
  val val_a : Int? = null

1.3后期初始化

前面提到在类中定义一个变量(属性)时是必须初始化的,但是在平时Android开发中我们对组件变量的声明是不需要直接初始化,这。。。。,Kotlin中后期初始化满足了你。

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

eg:


1.4延迟初始化

程序第一次使用到这个变量(属性)时再初始化

  • 使用lazy{}高阶函数,不能用于类型推断。且该函数在变量的数据类型后面,用by链接。
  • 必须是只读变量,即用val声明的变量。

eg:

// 声明一个延迟初始化的字符串数组变量
private val mTitles : Array<String> by lazy {
    arrayOf(
            ctx.getString(R.string.tab_title_android),
            ctx.getString(R.string.tab_title_ios),
            ctx.getString(R.string.tab_title_h5)
    )
}

// 声明一个延迟初始化的字符串
private val mStr : String by lazy{
    "我是延迟初始化字符串变量"
}

二、Kotlin注释

kotlin中注释和java基本一样,只是多了个多行注释(嵌套多行注释),个人觉得没卵用,只是看起来有点层次感

eg:

  /*
    第一层块注释
    /*
        第二层块注释
        /*
            第三层快注释
            这种注释方式在java中是不支持的,但是在kotlin中是支持的。算是一个亮点吧(貌似意义不大)。
         */
     */
 */

其他注释和java一个样

三、进制数

  • 二进制数
  • 八进制数(Kotlin不支持)
  • 十进制数
  • 十六进制数

eg:

var g = 0x0F            //十六进制数
var h = 0b00001011      //二进制数
var k = 123             //十进制数
// ps:Kotlin不支持八进制数
println(" g => $g \n h => $h \n k => $k);

输出结果:

g => 15 h => 11 k => 123

猜你喜欢

转载自blog.csdn.net/qq_28898075/article/details/88304048