kotlin入门(3)-数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kotlin入门(3)-数组相关的知识,希望对你有一定的参考价值。
参考技术A Kotlin入门(1)-环境配置
kotlin入门(2)-基本类型
数组在 Kotlin 中使用 Array 类来表示,它定义了 get 与 set 函数(按照运算符重载约定这会转变为 [])以及 size 属性,以及一些其他有用的成员函数。
先来看一下原生数组都有哪些:
其实这些就相当于Java中的 int[] , char[] 等等
先来看一下Java创建数组:
kotlin创建数组:
如果是基本类型的数组可以用文章头的那些类,例如:
一般创建数组,我们直接使用 arrayOf() 就好了
如果不知道自己的写的数据是什么类型,可以在AS中按快捷键Ctrl+Shift+P来查看
创建空数组:
其他创建数组方式:
it 指的是索引值, 相当于是一个函数, 可以根据 it 任意设置
方式一
方式二,通过索引
方式三,函数式
Kotlin学习快速入门——条件 数组 循环 方法
条件
if条件判断
常用的判断和Java一样,这里提一下不同的用法
1.if可以作为三元运算符
val max = if (a > b) a else b
2.使用in判断是否在某个区间
val x = 1
//相当于条件 1<= x <=8
if(x in 1..8)
println("在区间内")
//与上面的条件相反
if(x !in 1..8)
...
3.is关键字类型转换
相当于Java中instanceof
关键字
使用了is
,kotlin已经自动完成了类型转换
val text = "hello"
if(text is String)
...
when(swich分支)
1.字符串分支
val result = ""
when(result)
"OK","SUCCESS" -> print("成功")
"Falied" ->
一系列操作...
else ->
一系列操作...
2.数值分支
val num = 2
when(num)
in 1..10 -> println("num在1和10之间")
11,12 -> println("num为11或12")
3.表达式使用
//hasPrefix方法返回true或fasle
fun hasPrefix(x: Any) = when(x)
is String -> x.startsWith("prefix")
else -> false
4.不带参数
//里面的分支条件是布尔表达式
when
x.isOdd() -> print("x is odd")
x.isEven() -> print("x is even")
else -> print("x is funny")
数组
kotlin中数组用Array类实现,使用arrayOf方法或者是Array()的构造方法创建数组
//Int数组 [1,2,3]
val a = arrayOf(1, 2, 3)
//String数组 ["he","you"]
val a = arrayOf("he","you")
//工厂方法,["he0","he1],"he2"]
val array = Array(3, i -> ("he" + i) )
//还可以传对象
val a = arrayOf(student1,student2)
除了类Array,还有ByteArray, ShortArray, IntArray,用来表示各个类型的数组,省去了装箱操作,因此效率更高,其用法同Array一样。
循环
while循环与java一样,这里不多说
普通for循环
//0-4循环(包括0和4) 打印01234
for(i in 0..4)
println(i)
//反序 4-1 两边都包括 打印4321
for (i in 4 downTo 1)
print(i)
//[0-4),不包括4 打印0123
for (i in 0 until 4)
println(i)
//结果为13(步长为2,相当于每次循环i=i+2)
for(i in 1..4 step 2)
println(i)
数组遍历
//collection数组,list,String等可迭代的对象
for (item in collection)
print(item)
//it就是数组中的一个元素
array.forEach
println(it)
//indices是数组的区间(0-length-1)
for (i in array.indices)
print(array[i])
//得到下标和数值
for ((index, value) in array.withIndex())
println("the element at $index is $value")
方法
无返回值
//Unit相当于Void,可以省略不写
fun sayHello(): Unit
println("hello world")
fun sayHello()
println("hello world")
带返回值
fun sayHello(): String
return "hello world"
//如果方法是作为表达式,则可以省略声明方法返回的类型
fun sayHello() = "hello"
// public方法则必须明确写出返回类型
public fun sum(a: Int, b: Int): Int = a + b
带参数
fun max(num1: Int, num2: Int): Int
return if (num1>num2) num1 else num2
可变参数
可变参数使用vararg关键字修饰
fun vars(vararg v:Int)
for(vt in v)
print(vt)
以上是关于kotlin入门(3)-数组的主要内容,如果未能解决你的问题,请参考以下文章