Kotlin总结

一、Kotlin基本语法

1、Kotlin是一种静态类型编程语言,在java虚拟机上运行。Kotlin程序文件以 .kt 结尾

2、函数定义:

  函数定义使用fun,参数格式为 参数:参数类型

  

  2.1函数有返回值

  fun sum(a:Int,b:Int):Int{  //函数有返回值

    return a+b

  }

  

  2.2函数无返回值

  fun sum(a:Int,b:Int){  //函数无返回值

    print(a+b)   

  }

  2.3可变长度参数可用vararg关键字表示(可变长度是指 存在for类似操作)

  fun varsfun(vararg var:Int){

    for(vt in var){

      println(vt)

    }

  }

  fun main(args:Array<String>){

    varsfun(1,2,3)

  }  

  运行结果:

  

3、定义常量与变量

  var 定义变量,val定义常量(val类似java中final作用)

  var <标识符> : <类型> = <初始化值>  var a:Int=1 等价于 var a=1     a+=1  //变量可修改

  val <标识符> : <类型> = <初始化值> val b:Int=1             //不可执行  b+=1  因为b是val声明的不可修改

4、字符串模板

  $表示一个变量名或者变量值

  $varName表示变量值

  ${varName.fun()}表示变量的方法返回值,{}里边是表达式

  

  

       

5、Null检查机制

  Kotlin的空安全设计对于声明为空的参数在使用时进行空判断处理,有两种处理方式:

  ① !! 如果声明的参数为空类似java一样抛出空指针一场

       ② ? 不做处理返回值为null  或者配合?:做空判断处理

6、类型检测及自动类型转换

  is运算符做类型判断后,被判断的对象自动转化为要转为的类型

7、区间

  区间表达式操作符形式 ..

for (i in 1..4) print(i) // 输出“1234”

for (i in 4..1) print(i) // 什么都不输出

if (i in 1..10) { // 等同于 1 <= i && i <= 10
    println(i)
}

// 使用 step 指定步长
for (i in 1..4 step 2) print(i) // 输出“13”

for (i in 4 downTo 1 step 2) print(i) // 输出“42”

8、比较两个数字

  == 比较大小

  ===比较地址

fun main(args: Array<String>) {
    val a: Int = 10000
    println(a === a) // true,值相等,对象地址相等

    //经过了装箱,创建了两个不同的对象
    val boxedA: Int? = a
    val anotherBoxedA: Int? = a

    //虽然经过了装箱,但是值是相等的,都是10000
    println(boxedA === anotherBoxedA) //  false,值相等,对象地址不一样
    println(boxedA == anotherBoxedA) // true,值相等
}

9、位与操作符

  shl --左位移 (相当于java中<<)

  shr --右位移(相当于java中>>)

  ushi --无符号左位移

  ushr --无符号右位移

  and --与操作

  or --或操作

  xor --异或操作

  inv --取反操作

二、Kotlin基本数据类型

类型 位宽度
Double 64
Float 32
Long 64
Int 32
Short 16
Byte 8

  kotlin中字符char不属于数值类型,是一个独立的数据类型

  1、字符

  Kotlin中char必须是单引号' ' 包含起来,比如'0','a'

  

  2、数组

  数组用类array实现,采用arrayOf()创建:var a=arrayOf(1,2,3)

  3、字符串  “ ”

  Kotlin支持三个引号"""括起来的字符串支持多行字符串,比如:

 

 

三、条件控制

  1、if --和java类似,不做介绍

  

  2、when(相当于java中switch)

  

   else等同于switch中default

  如果很多分支需要用相同的方式处理,则可以把多个分支条件放在一起,用逗号分割

when (x) {
    0, 1 -> print("x == 0 or x == 1")
    else -> print("otherwise")
}

  利用when可以检测一个值在(in)或者不在(!in)一个区间或者集合中

when (x) {
    in 1..10 -> print("x is in the range")
    in validNumbers -> print("x is valid")
    !in 10..20 -> print("x is outside the range")
    else -> print("none of the above")
}

 四、循环控制

  1、for循环 一种是直接遍历,另一种是采用list的索引如下所示

    

   

  2、while 与do..while

  

猜你喜欢

转载自www.cnblogs.com/enhance/p/11584498.html