在期待着郭霖先生的《第一行代码(第三版)》时,意识到自己需要补充必要的Kotlin知识。现在写文章分享自己学习Kotlin基础知识的过程,争取拿到书之后能早日上手。
使用的软件是IDEA 2019,文章中如有错误或者欠缺的地方,欢迎批评指正。
1、如何声明数组
我们可以给出数组中的每一个元素,借此声明出一个数组;也可以先声明一个固定长度的数组,之后再往其中放入元素。
1 给定数组元素声明数组
对于基本数据类型(不包含String),声明方法为(以Int数组为例):
var lst:IntArray = IntArrayOf(1,2,3)
声明了一个Int数组lst,元素为1,2,3。
2 声明固定长度数组(不包括String类型)
var lst = IntArray(10)
指定大小为10的整型数组。
3 字符串数组
对于字符串数组,字符串其实不能算作是基本类型,因此需要采用泛型的方法来声明String数组。
例如:
var Stringlst:Array<String> = arrayOf("1","2","3")
创建了字符串数组,元素包括1、2、3。
Array<T>是泛型声明,T可以是任意一种数据类型。
也可以是:
var lst:Array<Int> = arrayOf(1,2,3)
创建整型数组lst,包括元素1、2、3。
在声明的时候指定String数组的大小,可以这样做:

实际上这是采用泛型的办法声明了一个为String可空类型的数组,大小为10(可空类型就是指变量值可以为null的类型),对于其他类型也是适用的。
可以看到,Kotin中有多种声明数组的办法,我建议采用最后一种指定可空类型泛型的数组的办法,这样对我来说不会弄混。其他的办法,看其他人的代码时,理解即可。关于可空类型,之后会有叙述。
2、数组遍历操作
遍历需要用到Kotlin中的循环语句。但是for(int i=0; i<值;i++)这样的写法在Kotlin中是错误的。但是,Kotlin保留了while循环的方法。
此外Kotlin中也有for循环,具体有三种形式:(参考《Kotlin从零到精通Android开发》,欧阳燊著,清华大学出版社2018年4月第一版,ISBN 978-7-302-49814-8)
//左闭右开区间,合法值包括11,但不包括66
for(i in 1 until 66){...}
//每次默认递增1,这里改成每次递增4
for(i in 23...89 step 4) {...}
//for循环默认递增,这里采用downTo表示递减
for(i in 50 downTo 7) {...}
这几种方法形式比较多样,不适合初学者掌握,建议采用while循环的办法,指定初始条件、终止条件和操作。
Kotlin中while循环与Java是一致的,do-while循环也是如此。