泛型的基本用法

在一般的编程模式下,我们需要给任何一个变量指定一个具体的类型,而泛型允许我们在不指定具体类型的情况下进行编程,这样编写出来的代码将会拥有更好的扩展性。

泛型主要有两种定义方式:一种是定义泛型类,另一种是定义泛型方法,使用的语法结构都是 <T>,使用任何英文字母或单词都可以,通常情况下 T 是一种约定俗成的泛型写法。

阅读全文 »

定义高阶函数

接收 Lambda 参数的函数可以称为具有函数式编程风格的 API。

如果一个函数接收另一个函数作为参数,或者返回值的类型是另一个函数,该函数就称为高阶函数。函数类型的语法规则:

(String, Int) -> Unit

-> 左边的部分用来声明该函数接收什么参数,多个参数之间使用逗号隔开,如果不接受任何参数写一对空括号就可以了。-> 右边的部分用于声明该函数的返回值是什么类型,如果没有返回值就使用 Unit,大致相当于 Java 中的 void。

阅读全文 »

扩展函数

扩展函数表示即使在不修改某个类的源码的形况下,仍然可以打开这个类,向该类添加新的函数。扩展函数的语法结构:

fun ClassName.methodName(param1: Int, param2: Int): Int {
return 0
}

扩展函数可以定义在任何一个现有类中,建议向哪个类中添加扩展函数就定义一个同名的 Kotlin 文件,便于以后查找,最好定义为顶层方法,可以让扩展函数拥有全局的访问域。

阅读全文 »

对变量延迟初始化

延迟初始化使用 lateinit 关键字,它可以告诉编译器会在晚些对这个变量进行初始化,这样就不用在一开始的时候将它赋值为 null 了。如果在变量还没有初始化的情况下直接使用,程序会崩溃,所以当对一个全局变量使用了 lateinit 关键字时,要确保它在任何地方调用之前已经完成了初始化工作。

使用::variable.isInitialized 判断变量是否已经初始化。

阅读全文 »

标准函数

Kotlin 的标准函数指的是 Standard.kt 文件中定义的函数,任何 Kotlin 代码都可以自由地调用所有的标准函数

let 函数

let 函数提供了函数式 API 的编程接口,并将原始调用对象作为参数传递到 Lambda 表达式中。

阅读全文 »

变量和函数

变量

val (value 的简写) 用来声明一个不可变的变量

var (variable 的简写) 用来声明一个可变的变量

显式的声明变量类型:

val a: Int 10
阅读全文 »
0%