系列文章记录kotlin的学习,完全参考官方文档http://kotlinlang.org/docs/reference/
1.包package
包名不需要与源文件目录结构完全一致
package my.demo
import java.util.*
2.函数function定义
完整形式,参数为Int类型的a和b,返回值类型为Int
fun sum(a: Int, b: Int): Int{
return a + b;
}
返回类型可以自动推导,可以简化为
fun sum(a: Int, b: Int) = a + b
如果无返回值,即为Unit类型,可以省略,如
fun printSum(a: Int, b: Int) {
print(“sum of $a and $b is $(a + b))
}
3.本地变量local variable
完整形式
var a : Int = 1
类型可以自动推导,不初始化赋值则必须声明类型
4.注释commit
与java类似,其中/**/块注释可以嵌套使用
5.字符串模板
字符串a或者任意表达式a+b,引用方式分别为
$a
${a+b}
6.条件表达式
if (a > b) a else b
7.nullable值及判断null
Int?
if (x == null)
8.类型检查及自动类型转换
is关键字检查,类似java中的instanceOf。类型检查为true后可以自动类型转换
fun getStringLength(str: Any) :Int? {
if (str is String) {
return str.length
}
return null
}
9.循环
for while用法与java类似,when类似于java中的switch
fun describle(obj: Any): String =
when (obj) {
1 -> “One”
“Hello” -> “Greeting”
!is String -> “Not s String”
else -> “Unknown”
}
10.范围Range
用in关键字判断一个数字是否在某个范围内,前面添加!表示不在某个范围
if (i in 1..10)
范围可以使用..表示,也可以使用downTo,后面可以使用关键字step步进取数据
if (i in 10 downTo 1 step 3)
11.集合
集合的迭代
for (item in items) {
println(item)
}
检查集合是否包含某元素
when {
“orange” in items -> println(“juicy”)
“apple” in items -> println(“apple is fine too”)
}
12.实例化类
不需要关键词new
var triangle = Triangle(3, 4, 5)