前言
今天开始正式介绍Kotlin这门语言以及在Android中的应用。本篇将介绍Kotlin的入门基础知识部分。
Android Studio中使用Kotlin 可参考文章:简约之美Kotlin(一)Android Studio创建一个简单的Kotlin应用
目录
1.基本类型
1-1.数据类型
先来看下Kotlin中是如何声明一个基本类型变量的。
private var context: Context? = null
val a: Int = 10000
val b: String? = "我是字符串"
Kotlin中声明变量很简单,通过两个关键词 var(变量)和val(常量),冒号后面是你要声明变量的类型。Kotlin变量方面和Java有些区别,Java中有八大基本数据类型以及他们对应的包装类型。Kotlin中数据类型都以”包装类”(对象)的形式存在,可以直接调用类型的基本属性和方法。
Kotlin中没有Java中的数据隐式转换(由低级向高级转换)
Java中:
byte a = 1;
int b = a;
print(a == b)
Kotlin中:
val a: Int? = 1
val b: Long? = a
print(a == b) //return false
那么在Koltlin中如何将数字从低类型向高类型转换呢?用显式转换,每种数字都是支持以下转换:
toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char
例如:
说白了,Kotlin给我们提供了比较方便的数据类型转换,用的时候真的是特别方便。
1-2.数组
声明数组参数类型为Array任意数据类型:
方式1:arrayof()声明
val a = arrayOf(10, "20", 30f)
a.set(0,"kotlinArray")
val index0 = a.get(0)
val size = a.size
方式2:使用Array构造函数
val asc = Array(5, { i -> (i * i).toString() })
除此之外,Kotlin还提供了具体数据类型的数组,ByteArray, ShortArray,IntArray等,它们和Array没有继承关系。但是也是有属于自己类型的操作方法以及属性等。
val a = intArrayOf(10,20,30) as IntArray
a.set(0,0)
....
1-3.字符串
这里对只针对字符串介绍一下它的字符串模板功能。
模板表达式是以美元符号($)开头,接下来我们看个例子:
val a = 10
print("a = $ a") //打印结果为 a = 10
或者是{ }大括号中任意表达式:
val str = "kotlin"
print(""$ str.length是$ {"str.length"}) //打印结果kotlin.length长度是3
2.基本语法
2-1.方法的声明
fun sum(a: Int, b: Int): Int {
return a + b
}
两个参数 类型是Int型,冒号后面是方法的返回值类型,没有返回类型的声明。
fun showToast(): Unit {
ToastUtils.show("no return value function")
}
//或者:
fun showToast() {
ToastUtils.show("no return value function")
}
2-1.变量的声明
val a: Int = 1 // 立刻赋值
val b = 2 // 系统推倒出是Int类型
val c: Int // 声明变量c,暂时没有赋值
c = 3 // 延期赋值
2-3.控制流程
2-3-1.条件语句
传统用法:
var max: Int
if (a > b) {
max = a
} else {
max = b
}
表达式用法:
val max = if (a > b) a else b
2-3.2.选择语句
使用when代替了switch case,写法很简单。
when (id) {
1 -> print("id == 1")
2 -> print("id == 2")
else -> {
print("id is neither 1 nor 2")
}
}
再来看个条件是表达式的操作。
when (id) {
in 1..10 -> print("id 在1-10范围之内")
in validNumbers -> print("id 是valid")
!in 10..20 -> print("id 不在10-20范围内")
else -> print("否则不在上述范围内")
}
2-3.3.循环语句
Kotlin中没有提供foreach方法,但是只要提供迭代器的任何东西都可以循环遍历,如下一个简单的遍历
for (item in collection) print(item)
支持块中操作:
for (item: Int in ints) {
// todo
}
支持范围表达式:
for(i in 1..3){
println(i) // 1 2 3
}
for (i in 6 downTo 0 step 2) {
println(i) // 6 4 2 0
}
范围表达式将在以后的文章中做介绍。
结尾
本篇介绍了Kotlin的入门基础知识,这里只是一部分在工作中常用知识点。后续会不断的补充。