Kotlin-基础知识

基本数据类型

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

位运算

在位运算中,没有什么特殊符号,都是用函数名来代替,比如:

val x=(1 shl 2) and 0x000FF000

再来看下其他的函数,

  • shl(bits) –有符号左移(和Java的”<<”一样)
  • shr(bits) –有符号右移(和Java的”>>”一样)
  • ushr(bits) –无符号右移(和Java的”>>>”一样)
  • and(bits) –按位与
  • or(bits) –按位或
  • xor(bits) –按位异或
  • inv() –取反

Kotlin 默认导入的包

kotlin.*
kotlin.annotation.*
kotlin.collections.*
kotlin.comparisons.* (since 1.1)
kotlin.io.*
kotlin.ranges.*
kotlin.sequences.*
kotlin.text.*

if表达式

普通模式:

var max: Int
if (a > b) {
    max = a
} else {
    max = b
}

表达式模式:

val max = if (a > b) a else b

赋值模式

val max = if (a > b) {
    a
} else {
    b
}

when 表达式

和Java的switch一个意思:

when (x) {
    1 -> print("x == 1")
    2 -> print("x == 2")
    else -> { 
        print("x is neither 1 nor 2")
    }
}

用逗号来区分两个条件

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

也可以用表达式

when (x) {
    parseInt(s) -> print("s encodes x")
    else -> print("s does not encode x")
}

更有甚者,可以在一个范围内:

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")
}

返回(return)与跳转

用break与标签一起中断循环

loop@ for (i in 1..100) {
    for (j in 1..10) {
        if (i == 2) break@loop
    }
}

在这个例子中,当i=2的时候,直接中断loop循环

return 跟break很类似,也可以中断

fun foo() {
    val ints= listOf(1,2,3,4)
    ints.forEach lit@ {
        if (it == 2) return@lit
        print(it)
    }
}

在这个例子中,当it=2的时候,是返回到lit处,
跟break区别是跳过这个循环,循环还会继续,但break是直接中断

你可能感兴趣的:(我和Android,Kotlin)