Idiomatic Kotlin: reified parameters
Java 中的泛型在编译时期,泛型信息被擦除掉了,使用相近的父类或者直接是Object 类替换泛型,这就是类型擦除(Type Erasure)。类型擦除减少了中间变量来存储泛型信息,进而减少了运... Read more
业精于勤荒于嬉
Java 中的泛型在编译时期,泛型信息被擦除掉了,使用相近的父类或者直接是Object 类替换泛型,这就是类型擦除(Type Erasure)。类型擦除减少了中间变量来存储泛型信息,进而减少了运... Read more
高阶函数就是可以接受函数作为参数或者将函数作为返回值的函数。Kotlin 中函数被当做普通数据类型(函数类型),可以做变量,参数,返回值。可以通过 lambda 表达式或者函数方法引用来实现。 Read more
高阶函数在编译后其实是用的匿名内部类的方式来实现,所以会有一点性能上的开销。使用 Inline 关键字来避免这种情形。被 Inline 关键字标记的高阶函数,在编译后是直接将高阶函数的函数体以及 Lambda 参数直接拷贝到调用... Read more
Elvis Operator 暂时没有找到好的中文翻译,暂时就叫做 Elvis 操作符。kotlin 中 Elvis operator 是用来做 Null 检查的,空检查操作符。有点像 ... Read more
lambda 表达式( lambda expressions):一段可以传递给其他函数的代码块高阶函数(high-order-functions):可以接受其他函数作为参数的就是高阶函数函数式编程(functio... Read more
单列模式限制了一个类只能有一个实例。当全局条件下,只需要一个实例来控制状态的时候就很有必要。单列必须要求: 只能有一个实例 能够被其他的访问 在实现... Read more
申明函数是一种复用代码的好方式。 Local Function 就是申明在函数中的函数,嵌套在函数中,官方翻译局部函数。函数通常情况是申明在一个类中。如果只是在... Read more
kotlin 中的属性类型有两种变量和常量 变量var或val。kotlin 中变量是默认有getter()和s... Read more
类代理,指的是可以用另外一个实现了这个接口的类来代理实现这个接口。kotlin 在语言层中支持了类代理。 Read more