Kotlin学习笔记------Kotlin基础

Kotlin学习笔记——Kotlin基础


1. 什么是Kotlin?

Kotlin是JVM和Android的实用编程语言,可以在Java工作的地方工作,如服务器端应用程序,移动应用程序(Android),桌面应用程序。具有代码简洁,安全性,互操作性,工具友好等特点。

2. 基础数值类型

Double(64位),Float(32位),Long(64位),Int(32位),Short(16位),Byte(8位)
注意:首字母大写,否则编译不通过。字符类型Char不为数值类型

3. 几种数据类型的常量值表示

Int类型:123;
Long类型:123L(注意:仅支持大写L,不可小写,可省);
Double类型:123.5;
Float类型:123.5f或123.5F(注意:支持大小写F)
16进制:0x11,0x0f(以“0x”开头)
2进制:0b11,0b010(以“0b”开头)
注意:不支持8进制表示

4. 变量声明

var a: Int = 10000
var b: Byte = 1

Kotlin 有两种类型的 string :一种是可以带分割符的

var s = "Hello World!\n"

整行String 是由三个引号包裹的(“”“),不可以包含分割符但可以包含其它字符:

var text = """Hello ("1")
    World!"""

模板表达式
一个模板表达式由一个 $ 开始并包含另一个简单的名称:

var i = 10
var s = "i = $i" // 识别为 "i = 10"

一个带大括号的表达式:

var s = "abc"
var str = "$s.length is ${s.length}" //识别为 "abc.length is 3"

注意val不可再次赋值,var可再次赋值

5. 变量装箱

显式

val a: Int? =1 

隐式(注意:被装箱的类型需为箱子类型的子类,但短类型不是长类型的子类型(如:Int和Long)无法隐式装箱)

val c: Long= 1
val b: Long? = c 

注意装箱过的数值是不保留特征,如:

val a: Int = 10000
print (a === a ) //打印 'true'val boxedA: Int? =aval anotherBoxedA: Int? = a
print (boxedA === anotherBoxedA ) //注意这里打印的是 'false'

但是值不变,如:

val a: Int = 10000
print(a == a) // Prints 'true'val boxedA: Int? = aval anotherBoxedA: Int? = a
print(boxedA == anotherBoxedA) // Prints 'true'

6. 类型转换

隐式转换
注意:短类型和长类型无法相互隐式转换

val b: 子类= 子类() // OK, literals are checked statically
val i: 父类= b //ERROR

显示转换

val b: Byte = 1
val i: Int = b.toInt()

几种基础数值类型都有如下显示转换方法

toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char

7.运算符

位运算操作符(只可以用在 Int 和 Long 类型):
shl(bits) 带符号左移 (相当于“<<”)
shr(bits) 带符号右移 (相当于“>>”)
ushr(bits) 无符号右移 (相当于“>>>”)
and(bits) 按位与
or(bits) 按位或
xor(bits) 按位异或
inv(bits) 按位翻转
Kotlin支持标准的算术运算表达式
+a 等同 a.unaryPlus()
-a 等同 a.unaryMinus()
!a 等同 a.not()
a+b 等同 a.plus(b)
a-b 等同 a.minus(b)
a * b 等同 a.times(b)
a / b 等同 a.div(b)
a % b 等同 a.rem(b), a.mod(b) (deprecated)
a..b 等同 a.rangeTo(b)
a in b 等同 b.contains(a)
a !in b 等同 !b.contains(a)
a += b 等同 a.plusAssign(b)
a -= b 等同 a.minusAssign(b)
a *= b 等同 a.timesAssign(b)
a /= b 等同 a.divAssign(b)
a %= b 等同 a.remAssign(b), a.modAssign(b) (deprecated)
a > b 等同 a.compareTo(b)> 0
a < b等同 a.compareTo(b) < 0
a >= b 等同 a.compareTo(b) >= 0
a <= b 等同 a.compareTo(b) <= 0
a == b 等同 a?.equals(b) ?: (b === null)
a != b 等同 !(a?.equals(b) ?: (b === null))
a === b 类型判等

8.三元表达式

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

9.When表达式(替代switch表达式)

when (x) {
    1 -> print("x == 1")
    2 -> print("x == 2")
    else -> { //Note the block
        print("x is neither 1 nor 2")
    }
}
when (x) {
    0,1 -> print("x == 0 or x == 1")
    else -> print("otherwise")
}
when (x) {
    方法 -> print("s encode x")
    else -> print("s does not encode x")
}
when (x) {
    in 1..10 -> print("x is in the range")
    in 数据集合-> print("x is valid")
    !in 10..20 -> print("x is outside the range")
    else -> print("none of the above")
}

10.For循环

for (item in collection)
    print(item)

Kotlin在线中文文档

猜你喜欢

转载自blog.csdn.net/tomcat0916/article/details/80322579