初步学习的时候要学会使用Android Studio的“Convert to Kotlin”功能,当不知道kotlin怎么写的时候,可以先用java代码写,然后通过Android Studio转换为kotlin代码。
// 自动推断类型
val s = "Sample" // 自动推断出字符串
var i = 23 // 自动推断出整型
i += 1 // 变量可以改变值
// 空安全变量
var a: String = "abc"
a = null // 编译错误
val l = a.length // 可以放心地使用
// 可为空字符串变量
var b: String? = "abc"
b = null // ok
val l = b.length // 错误:变量“b”可能为空
// 常量数组int[][][] arrs = new int[3][2][1];
val arrs = Array(3) { Array(2) { IntArray(1) } }
Kotlin没有隐式拓宽转换,如 Java 中
int
可以隐式转换为
long
,必须要显式类型转换。
val a: Double = 5.2
val b: Int = a.toInt() // 显式转换,b 等于 5
val c: Float = 5.2F
val d: Int = c.toInt() // d 等于 5
Kotlin中字符串模板,可以包含一些小段代码,会把求值结果合并到字符串中。
模板表达式以美元符($)开头:
val h = "me"
val j = "it is $h" // it is me
模板中的任意表达式,用大括号:
val k = "h length is ${h.length}" // h length is 2
Array
类来创建和操作数组,和
Java
区别很大,它定义了
get
和
set
函数,
size
属性,以及一些其他有用的成员函数。
[]
可以用于访问数组的元素,实际上
[]
被进行了操作符的重载,调用的是
Array
类的
get
和
set
方法。
//使用装箱操作,
val arr1 = arrayOf(1, 2, 3)
//原生类型数组,还有 ByteArray、 ShortArray 等
val arr2: IntArray = intArrayOf(1, 2, 3)
//直接指定长度
val arr3 = arrayOfNulls<Int>(5)
//长度为 0 的空数组
val empty = emptyArray<Int>()
//访问数组元素
val arr4 = arrayOf(1, 2, 3)
println(arr4[1]) //输出“2”,建议用这个方法
println(arr4.get(1)) //输出“2”
//修改元素
arr4[1] = 10
println(arr4[1]) //输出“10”
//遍历数组
for (arr in arr4) {
println(arr)
//遍历数组下标
for (arr in arr4.indices) {
println(arr)