最适合Android程序员的kotlin笔记——基本元素
2019-12-31 本文已影响0人
朱_c713
语句和表达式
- 语句和表达式的区别:表达式有值,语句(总是包围着他的代码块中的顶层元素)并且没有自己的值。
- kotlin中,if是表达式,而不是语句,kotln没有三元运算符,用if else结构代替。
- kotlin的表达式,可以作为另一个表达式的一部分使用。
- java中,所有的控制结构都是语句, 除了循环(for, while do/while)以外,大多说控制结构都是表达式
- java中,赋值操作是表达式,kolin中是语句
变量
- java中声明变量会以类型开始,kotlin中不行,因为许多变量声明的类型都可以省略
- kotlin中的变量声明格式: 关键字 变量名 :类型(可加可不加)
- val 声明的变量,初始化后不能在赋值——对应final
- var 这种变量的值,可以被改变——对应非final(普通变量)
注意:默认情况下,应该尽可能地使用val关键字来生命所有的kotlin变量,仅在必要的时候换成var。这是函数式编程所期待的
- val引用自身是不可变的,但是指向的对象是可能改变的:
val lan=arrayListOf("java")
lan.add("kotlin")
以上代码完全正确
- var变量允许改变自己的值,但类型却是改变不了的
var answer=42
answer="sier"
以上代码编译失败
可见性
- kotlin中public是默认可见性
属性
- java中字段(变量)和访问器(getter setter)的组合通常被叫做属性
-kotlin中,属性是头等的语言特性,完全替代了字段和访问器组合 - 当你声明属性的时候,你就声明了对应的访问器
分支语句——强大的when
-switch要求使用长廊作为分支条件,when允许使用任何对象,所以大胆的用吧
- when可以完全替代swtich(建议替换)
- when 可以完全替代连续的 else if(建议替换)
- java中if可以使用代码块作为分支体,kotlin中if when都可以使用代码块作为分支体。