在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。
- 基本语法
(1)public 方法则必须明确写出返回类型
public fun sum(a: Int, b: Int): Int = a + b
(2)无返回值
fun printSum(a: Int, b: Int): Unit {
print(a + b)
}
(3)函数的变长参数可以用 vararg 关键字进行标识:
fun vars(vararg v:Int){
for(vt in v){
print(vt)
}
}
// 测试
fun main(args: Array) {
vars(1,2,3,4,5) // 输出12345
}
(4)可变变量定义:var 关键字
var <标识符> : <类型> = <初始化值>
(5)不可变变量定义:val 关键字,只能赋值一次的变量(类似Java中final修饰的变量)
val <标识符> : <类型> = <初始化值>
2.条件控制
(1)这也说明我也不需要像Java那种有一个三元操作符,因为我们可以使用它来简单实现:
val c = if (condition) a else b
3.循环控制
(1)正常循环:
for (i in 1…4) print(i) // 打印结果为: “1234”
(2)如果你需要按反序遍历整数可以使用标准库中的 downTo() 函数:
for (i in 4 downTo 1) print(i) // 打印结果为: "4321"也支持指定步长:
for (i in 1…4 step 2) print(i) // 打印结果为: “13”
for (i in 4 downTo 1 step 2) print(i) // 打印结果为: “42”
(3)如果循环中不要最后一个范围区间的值可以使用 until 函数:
for (i in 1 until 10) { // i in [1, 10), 不包含 10
println(i)
}
4.类和对象
(1) 我们可以像使用普通函数那样使用构造函数创建类实例:
val site = Runoob() // Kotlin 中没有 new 关键字
(2) 要使用一个属性,只要用名称引用它即可
site.name // 使用 . 号来引用
site.url
5.继承
(1)Kotlin 中所有类都继承该 Any 类,它是所有类的超类,对于没有超类型声明的类是默认超类:
class Example // 从 Any 隐式继承
(2)重写
在基类中,使用fun声明函数时,此函数默认为final修饰,不能被子类重写。如果允许子类重写该函数,那么就要手动添加 open 修饰它, 子类重写方法使用 override 关键词:
/用户基类/
open class Person{
open fun study(){ // 允许子类重写
println(“我毕业了”)
}
}
/子类继承 Person 类/
class Student : Person() {
override fun study(){ // 重写方法
println("我在读大学")
}
}
fun main(args: Array) {
val s = Student()
s.study();
}