包
包的概念基本与Java差不多,都表示命名空间,需要放在非注释代码的第一行。
但是可以用as语句写别名
package chapter2.qq
fun main(args: Array<String>) {
val qqShaoXia: MoShaoXia = MoShaoXia()
val wxShaoXia: chapter2.wx.MoShaoXia = chapter2.wx.MoShaoXia()
}
上面代码可以改为
package chapter2.qq
import chapter2.wx.MoShaoXia as ShaoKaoXianRen
fun main(args: Array<String>) {
val qqShaoXia: MoShaoXia = MoShaoXia()
val wxShaoXia: ShaoKaoXianRen = ShaoKaoXianRen()
}
区间
这个概念在Java中是没有的,“..”运算符表示一段闭区间
val range: IntRange = 0..1024 //[0,1024]
val rangeExclusive: IntRange = 0 until 1024 // [0,1024) == [0,1023]
val emptyRange: IntRange = 0..-1
fun main(args: Array<String>) {
println(emptyRange.isEmpty()) // true
println(range.contains(50)) // true ①
println(50 in range) //true ②
//遍历打印
for (i in range){
println(i)
}
}
数组
基本写法
java
String[] array = new String[]{};
Kotlin
val array:Array<String> = arrayOf(...)
基本操作
与Java基本一样
- prin(array[i]) 输出第i个成员
- array[i] = "Hello"给第i个成员赋值
- array.length 数组的长度
//为了避免不必要的装箱和拆箱,基本类型的数组是定制的
val arrayOfInt: IntArray = intArrayOf(9,5,2,7)
val arrayOfChar: CharArray = charArrayOf('m','s','x')
//非基本类型的数组
val arrayOfString: Array<String> = arrayOf("mo","shao","xia")
val arrayOfMoShaoXia: Array<MoShaoXia> = arrayOf(MoShaoXia(3), MoShaoXia(18), MoShaoXia(26))
fun main(args: Array<String>) {
println(arrayOfInt.size)// 4
for (i in arrayOfInt){ //9527
print(i)
}
println(arrayOfMoShaoXia[1].age)//18
arrayOfMoShaoXia[1].age = 20
println(arrayOfMoShaoXia[1].age)//20
//将字符数组拼接成String
println(arrayOfChar.joinToString(""))//msx
//默认是用","拼接起来
println(arrayOfChar.joinToString())//m, s, x
//1..2 依然是闭区间
println(arrayOfInt.slice(1..2))//[5, 2]
}