《Kotlin实战》笔记
零下0814
热爱Android,热爱Google,热爱互联网
展开
-
《Kotlin实战》第二章:基础
2.1 函数与变量函数函数的声明以关键字fun开头,函数名其后,括号括起来的是参数列表,参数列表后面跟着返回值类型,中间用冒号隔开;fun name(参数名 : 参数类型...) : 返回值类型函数的函数体可以有两种:(一)花括号;(二)表达式函数体;表达式函数体由单个表达式构成,可以用这个表达式作为完整的函数体,去掉花括号与return语句;注意:在Kotlin中...原创 2019-03-02 09:18:19 · 289 阅读 · 0 评论 -
Kotlin中最常用的80个关键字
fun 函数声明val / var 变量声明${} 字符串模板import 导入任何种类的声明enum class 枚举when 分支表达式… 区间表达式(递增,闭区间)until (递增,开区间)for( a in…) 循环down To 递减step设置步长in !in 判断对象是否在集合或区间中const val 类似于Java中static final ,适用于...原创 2019-05-06 20:32:45 · 2113 阅读 · 0 评论 -
第十章:注解与反射
注解应用注解: 关键字@常用:@Deprecated 被废弃, 可以使用replaceWith参数增强它。该注解可以传入参数message, replaceWith, level。参数类型:基本数据类型、字符串、枚举、类引用、其他的注解类以及前面这些类型的数组;注意:把一个类指定为注解实参,在类名后加上::class ; 把另外一个注解指定为一个实参,去掉注解名称前面的@; 要把一个数组...原创 2019-04-28 22:33:46 · 269 阅读 · 0 评论 -
第九章:泛型
泛型类型参数类型参数约束:限制作为(泛型)类和(泛型)函数的类型实参的类型如果把一个类型指定为泛型类型形参的上界约束,在泛型具体的初始化中,其对应的类型实参就必须是这个具体类型或者是它的子类型。指定多个约束:使用关键字where没有指定上界的类型形参将会使用Any?这个默认的上界 , 如果想让类型参数始终是非空类型,需要使用Any或其子类型。运行时的泛型JVM 上的泛型一般是...原创 2019-04-25 19:18:14 · 273 阅读 · 0 评论 -
第八章:高阶函数:Lambda作为形参和返回值
声明高阶函数高阶函数定义:是以另外一个函数作为参数或者返回值的函数;在Kotlin中可以用lambda或者函数引用来表示函数;任何以lambda或者函数引用作为参数的函数,或者返回值为lambda或者函数引用的函数或者两者都满足的函数都是高阶函数;声明函数类型:需要把函数参数类型放在括号中,紧接着是一个箭头和函数的返回类型(函数类型声明总是需要一个显式的返回类型,Unit类型的返...原创 2019-04-03 18:54:25 · 2170 阅读 · 0 评论 -
第七章:运算符重载及其他约定
重载算术运算发重载运算符需要使用关键字: operator , 表明该函数作为相应的约定来实现;Kotlin限制了可以重载的运算符注意:不要求两个运算数的类型相同;不会自动支持交换性(1.5 * p & p *1.5),由于两个运算数的类型不同,需要在相应的类型中做相应的重载处理(扩展函数…)返回类型可以不同于任一运算符类型重载复合赋值运算符返回值为Unit,名为...原创 2019-03-28 22:34:21 · 440 阅读 · 0 评论 -
第五章:Lambda编程
Lambda表达式和成员引用Lambda本质上是可以传递给其他函数的一小段代码 ;函数式编程提供了另外一种解决问题的方法:把函数当作值 来对待;Lambda和集合maxBy{} 指定比较哪个值找到最大元素,需要一个参数:一个函数可以使用**it(默认参数名称)**来指定集合中的元素,如果当前上下文期望的是只有一个参数的lambda且这个参数的类型是可以被推断出来的;成员引用 ::...原创 2019-03-18 14:00:53 · 749 阅读 · 0 评论 -
第四章:类、对象和接口
定义类继承结构接口的声明:关键字: interface ,可以有一个默认实现,只需要提供方法体即可;继承(实现)使用:符号,一个类可以实现任意接口,但只能继承一个类(与Java相同);override修饰符用来标注被从重写的父类或者接口的方法和属性,被强制要求;调用父类的实现方法: super.method()允许创建基类: open修饰符来修饰该类,此外需要给每一个可以被重写的属性和...原创 2019-03-13 09:40:48 · 398 阅读 · 0 评论 -
第六章:类型系统
可空性(空安全)帮助解决NullPointerException , 解决问题的方法:把运行时错误转变成编译期错误 ;Kotlin通常要求你在构造方法中初始化所有属性,如果某个属性是非空类型,你就必须提供非空的初始化值,否则你就必须使用可空类型;Kotlin对可空类型的显式支持 ,允许在程序中指出哪些变量和属性允许为Null,如果一个变量为null,那么对它的调用就是不安全的;在传递参数...原创 2019-03-20 15:14:35 · 362 阅读 · 0 评论 -
《Kotlin实战》第三章:函数的定义与调用
Kotlin没有采用自己的集合类,而是采用标准的Java集合类;命名参数 :调用一个Kotlin定义的函数时,可以显示地表明一些参数的名称(如果指明了一个参数的名称,为了避免混淆,那它之后的所有参数都要表明名称)默认参数值:在声明函数的时候,可以指定参数的默认值,避免创建重载的函数。(可以用所有参数来调用这个函数或者省略掉部分参数)顶层函数与属性 :放在代码文件(.kt)中常量: 放在...原创 2019-03-07 17:47:27 · 398 阅读 · 0 评论 -
《Kotlin实战》第一章:定义与目的
概述Kotlin是一种针对Java平台的新编程语言。Kotlin简洁、安全、务实,并且专注于与Java代码的互操作性。Kotlin的主要特征目标平台服务器、Android以及任何Java运行的地方特征静态类型;意味者所有的表达式的类型在编译期就已经确定了(与Java一样)函数式与面向对象;函数式的核心概念:头等函数——把函数当作值使用,可以用变量保存它,把它当作参数传递,或者...原创 2019-02-26 18:23:39 · 423 阅读 · 0 评论 -
DSL构建:领域特定语言
什么叫API整洁?能够让读者清楚的知道在代码中发生了什么(选择良好的名称和概念)代码需要看起来整洁,极少使用浮夸的代码且不存在冗余的语法领域特定语言的概念通用编程语言(解决几乎所有能被计算机解决的问题);领域特定语言(专注在特定任务,或者说领域上,并放弃与该领域无关的功能)最常用的DSL语言:SQL & 正则表达式DSL趋向于声明式(描述了想要的结果并将执行的细...原创 2019-05-10 19:20:49 · 1955 阅读 · 0 评论