0x0001 var 和 val 的使用规则
在 Kotlin 中声明变量使用 var 和 val 关键字,var 可以理解为 variable,代表变量,在 val 可以理解为 final variable,代表 引用不可变,这里需要引用不可变不代表不可变,具体的含义同 Java 中 final,不再详述。
在 Kotlin 中优先使用 val 避免产生 副作用。
副作用:修改了某处的一些东西:修改外部变量的值、IO 操作)
副作用,这个概念在函数式编程中十分重要,需要重点理解。通过下面我们可以更直观的理解副作用:
1 |
var a = 1 |
则打印日志为:
1 |
3 |
现在你看到的调用两次 test104(1),但是打印结果不同,这就是很明显的副作用,而如果使用 val 声明变量 a,那么就不会存在这种情况,因为对 val 变量赋值是错误的。
基于此,在 Kotlin 中 尽量使用 val 声明本身不可变的变量,以此来避免副作用。
- var 的适用场景:
var 占用内存少,在某些业务中如果需要存储大量的数据,使用 var 则更适合。
0x0002 const 修饰符
在 Kotlin 中 const 为常量修饰符,const 只能够修饰 val,不能修饰 var,其实 val 拥有了 const 的大部分功能,但是经过const修饰的属性只能用拼接 const 修饰的属性去拼接:
1 |
val one = "one" |
0x0003 增强的类型推导
编译器可以在不显示声明类型的情况下,自动推导出它需要的类型。
1 |
fun main(args: Array<String>) { |
通过日志,Kotlin 会自动推导变量的类型:
1 |
int |
0x0004 增强的函数
在 Kotlin 中增强了函数特性,可以吧 ‘{}’ 取消,用等号直接定义函数:
1 |
// 增强的函数 |
表达式函数:在 Kotlin 中支持使用单行表达式与等号的语法来定义函数,可以成为表达式函数。
在 Kotlin 中 表达式 有非常重要的地位,那么什么是表达式呢?
在 Kotlin 中表达式可以是一个值、变量、常量、操作符、函数,或者它们的组合,编程语言对其进行解释和计算,以 产生另外一个值(重点)。
在 Kotlin 中 if 是一个语句,同时也是表达式,如果把 if 语句赋值给变量,那么此时 if 语句为表达式,则必须存在 else 语句,否则会报错
1 |
// if 作为语句 |
0x0005 字符串判等
在 Kotlin 中,相等有结构相等和引用相等:
- 结构相等:通过操作符 == 判断两个对象的 内容 是否相等。
- 引用相等:通过操作符 === 两个对象的 引用 是否相等。
1 |
val a = "Kotlin" |
打印日志:
1 |
a==b? :true |
读书笔记:
知识备份:
近期评论