@TOC
函数声明
- 声明函数要用 ==fun==关键字,就像声明类要用==class==关键字一样
- 函数参数的参数类型在参数名右边
- 函数的返回值在函数参数的右边使用:分割,没有返回值时可以省略 声明无返回值的函数
fun main(){
//...
}
声明有返回值的函数
fun sum(x: Int, y: Int): Int{
return x + y
}
变量声明
-
声明变量需要通过关键字,==var== 声明可读可写变量, ==val==声明只读变量
-
类型在变量名的右边,用==:==分割,如果同时满足类型推断,类型可以省略
-
创建对象直接调用构造器,不需要==new==关键字
声明可读可写变量
var age: Int = 18声明只读变量
val name: String = "hello, kotlin!"
声明对象
val user: User = User()
类型推断
在变量声明的基础上,如果表达式右边的类型是可以推断出来,那么类型可以省略:
var age = 18
val name = "Hello, Kotlin!"
val user = User()
继承类/实现接⼝
继承类和实现接⼝都是⽤的 : ,如果类中没有构造器 ( constructor ),需要在⽗
类类名后⾯加上 () :
class MainActivity : BaseActivity(),
View.OnClickListener
空安全设计
Kotlin 中的类型分为「可空类型」和「不可空类型」 不可空类型
val editText : EditText
可空类型
val editText : EditText?
lateinit 关键字
lateinit 只能修饰 var 可读可写变量(思考下为什么)
lateinit 关键字声明的变量的类型必须是「不可空类型」
lateinit 声明的变量不能有「初始值」
lateinit 声明的变量不能是「基本数据类型」
在构造器中初始化的属性不需要 lateinit 关键字 平台类型
在类型后⾯⾯加上⼀个感叹号的类型是「平台类型」
Java 中可以通过注解减少这种平台类型的产⽣
@Nullable 表示可空类型
@NotNull @NonNul l 表示不可空类型 类型判断
is 判断属于某类型
!is 判断不属于某类型
as 类型强转,失败时抛出类型强转失败异常
as? 类型强转,但失败时不会抛出异常⽽是返回 null