Open eziceice opened 5 years ago
Sealed
关键字迎来修饰一个类为密封类,若要继承则需要将子类定义在同一个文件中,其他文件中无法继承它。Sealed
类无法被初始化,因为它背后是基于一个抽象类实现的。internal
module内可见。protected
类以及子类可见。inline
function将会直接运行function中的表达式,非inline
function则会先生成一个匿名function再运行表达式。非inline
function会产生更大的运行开销。
1. 基础语法
1.1 不一样的类型声明
val a : String = "I am Kotlin"
这种类型声明的方式使得代码的可读性更好,同时有利于省略类型声明。fun sum(x: Int, y: Int): Int {return x + y}
,依然需要定义函数的返回值类型,Int不可以省略。函数的默认返回值为Unit类型。1.2 val & var
1.3 高阶函数和Lambda
() -> Unit
(Int) -> Unit
((errorCode: Int, errMsg: String?) -> Unit)?
:?为可选参数,表示errMsg在某些情况下可以传入空值。?在函数后表示该函数在某些情况下也可以不需要传入。(Int) -> ((Int) -> Unit)
:传入一个Int,返回一个函数((Int) -> Int) -> Unit
:传入一个函数,返回一个UnitLambda