Android Kotlin笔记
文章平均质量分 67
源码下载: https://github.com/nai-chen/KotlinBlog
假装你是大灰狼
移动端工程师
展开
-
Android Kotlin 常用函数let, with, run, apply用法与区别案例详解
可以把lambda理解为就是一个对象,但这个对象比较特殊,它是一段代码,既然是对象就可以作为函数的参数使用。函数有2个参数,第一个参数为要处理的对象,最后一个是lambda参数,根据规则1,放在了圆括号后边。函数写法和lambda的规则可以看出,它只有一个lambda参数,并且这个lambda的参数也只有一个,就是调用者对象本身。这些函数使用率是非常高的,有时候可以通用,差别很小,但如果能记住他们的不同点,可以更加合理的选择使用。:如果lambda表达式只有一个参数时候,不用声明参数,可以用隐式名称。转载 2022-11-16 17:17:26 · 1227 阅读 · 0 评论 -
Android Kotlin 关键字 Reified
reified:使抽象的东西更加具体或真实,非常推荐 Android 开发使用这个关键字。本文介绍 3 点特别的使用方式如下:1. 不再需要传参数 clazz大部分的文章讲解 reified 的使用,都有提到这个点,比如我们定义实现一个扩展函数启动 Activity,一般都需要传 Class<T> 参数:// Functionprivate fun <T : Activity> Activity.startActivity(context: Context, clazz: C转载 2021-03-01 14:20:37 · 1316 阅读 · 0 评论 -
Android Kotlin null值安全性
Kotlin 类型系统的设计目标就是希望消除代码中null引用带来的危险。Kotlin 的类型系统致力于从我们的代码中消除NullPointerException. 只有以下情况可能导致NPE:明确调用 throw NullPointerException()使用 !! 操作符, 详情见后文外部的 Java 代码导致这个异常初始化过程中存在某些数据不一致 (在构造器中使用了未初始化的 this)在 Kotlin 中, 类型系统明确区分可以指向null的引用 (可为null引用) 与不可以指向转载 2020-08-24 10:25:06 · 494 阅读 · 0 评论 -
Android Kotlin 运算符重载(八)
首先申明下,本文为笔者学习《Kotlin 程序开发入门精要》的笔记,并加入笔者自己的理解和归纳总结。Kotlin允许我们对数据类型的一组预定义的操作符提供实现函数。1. 一元操作符重载表达式对应的函数+aa.unaryPlus()-aa.unaryMinus()!aa.not()a++a.inc()a–a.dec()我们假设一个复数类Complex,有实部real和虚部imagclass Complex(r: Int, i: Int) {原创 2020-08-21 14:46:32 · 490 阅读 · 0 评论 -
Android Kotlin Lambda表达式(七)
首先申明下,本文为笔者学习《Kotlin 程序开发入门精要》的笔记,并加入笔者自己的理解和归纳总结。Lambda表达式,也可称为匿名函数。以箭头操作符->将表达式拆分成两部分// 没有参数var f1 = { -> println("in f1")}// 一个参数var f2 = { x: Int -> println("in f2 x = $x")}// 多个参...原创 2020-04-15 17:47:47 · 249 阅读 · 0 评论 -
Android Kotlin 扩展和委托(六)
首先申明下,本文为笔者学习《Kotlin 程序开发入门精要》的笔记,并加入笔者自己的理解和归纳总结。1. 扩展1.1 类成员扩展扩展可以向类中添加成员。为Long添加一个format方法,用于时间戳格式化输出。fun Long.format(): String { return SimpleDateFormat("yyyy-MM-dd hh:mm:ss") ...原创 2020-04-03 17:03:05 · 287 阅读 · 0 评论 -
Android Kotlin 对象(五)
首先申明下,本文为笔者学习《Kotlin 程序开发入门精要》的笔记,并加入笔者自己的理解和归纳总结。在Java中,有一个匿名类的概念,在Kotlin中,也有类似的功能,就是对象。1. 对象建立一个对象,需要使用object关键字,该对象要继承的类需要与object之间用冒号(:)分隔。open class Operation(var base : Int) { open fun ...原创 2020-03-11 16:14:05 · 487 阅读 · 0 评论 -
Android Kotlin 泛型(四)
首先申明下,本文为笔者学习《Kotlin 程序开发入门精要》的笔记,并加入笔者自己的理解和归纳总结。1. 泛型所谓泛型,就是指在定义数据结构时,只指定类型的占位符,待到使用该数据结构时再指定具体的数据类型。定义泛型类型变量,可以完整地写明类型参数,如果编译器可以自动推定类型参数,也可以省略类型参数。class Data<T>(v: T) { var value = v...原创 2020-02-26 20:17:28 · 808 阅读 · 0 评论 -
Android Kotlin 枚举类、数据类和封闭类(三)
首先申明下,本文为笔者学习《Kotlin 程序开发入门精要》的笔记,并加入笔者自己的理解和归纳总结。1. 枚举类在kotlin中,枚举以类的形式存在。枚举有name和ordinal属性,用于获取枚举值名称和索引。通过valueOf()方法传入枚举值名称获取对应的数值。enum class Direction { EAST, SOUTH, WEST, NORTH}fun main...原创 2020-02-11 20:37:32 · 907 阅读 · 0 评论 -
Android Kotlin 类和接口(二)
首先申明下,本文为笔者学习《Kotlin 程序开发入门精要》的笔记,并加入笔者自己的理解和归纳总结。1. 类在kotlin中,类的声明使用class关键字。class Shape {}1.1 构造器类允许定义一个主构造器和若干个第二构造。主构造器是类头的一部分,紧跟在类名的后面,构造器参数是可选的。在init块中进行初始化,init块可直接使用主构造器的参数。class Shap...原创 2020-01-21 13:55:13 · 725 阅读 · 0 评论 -
Android Kotlin 基础(一)
首先申明下,本文为笔者学习《Kotlin 程序开发入门精要》的笔记,并加入笔者自己的理解和归纳总结。1. 定义变量和方法定义变量定义变量必须以var开头,定义常量以val开头数据类型在变量后面,并且用冒号(:)分隔定义变量时如果未初始化,必须指定数据类型。如果进行了初始化,可以不指定数据类型,编译器会自动推导数据类型不需要以分号(;)结尾示例var a1: Intvar a2...原创 2020-01-20 16:25:13 · 590 阅读 · 0 评论