Kotlin之变量,操作符,和表达式
1. 概述
本文总结了Kotlin编程中变量的概念,常用的数据类型,声明变量的语法,常用的运算符和表达式的概念。
2. 变量
变量可视为一个被命名了的盒子。通过变量名,程序员可以访问设备的内存,比如Android开发时的手机内存。
将手机内存想象成一个大仓库,程序员可在其中存放变量。声明了变量后,就可以想象变量已存放到了这个仓库中,随时可供程序员使用。通过变量名访问变量的时候,操作系统知道去仓库的什么位置找到该变量的值。
3. 常用的数据类型
类型名称 | 类型说明 | 取值范围 |
---|---|---|
Int | 存放整数(Integers and whole numbers) | -231 ~ 2 31 - 1 |
Long | 也存放整数,但相比Int,可存放的值更大 | -263 ~ 263 - 1 |
Float | 用于存放浮点数,因小数部分也占用内存空间,所以酌情使用 | 小数点后6到7位数 |
Double | 用于存放浮点数,Float精度不够时考虑使用 | 小数点后15到16位 |
Boolean | 存放布尔值 | 只有true和false |
Char | 存放单个字符(alphanumeric character),单引号引起来 | 可存放任意字符 |
String | 字符串,其中存放字符,用双引号引起来 | 字符串的长度可用是无限长的 |
Class | 类类型,其中包含属性和方法,可实例化为对象 | 可将需要的事物抽象成类来定义 |
Array | 存放固定数量,相同类型或其子类型的值的数据结构。此为对象类型数组 | 种类很多。所有数据类型都可以构建其数组。 |
4. 声明和初始化变量
4.1 val和var
有两个关键字可用于声明变量:
- val:该关键字声明的变量在程序运行期间不能被修改;
- var:该关键字声明的变量在程序运行期间可以被修改;
分别用val和var声明String类型的变量:
val contactName: String = "Gorden Freeman" // 尝试修改contactName的值,会报错
var contactName: String = "Gorden Freeman"
4.2 类型推断
Kotlin可根据上下文推断开发人员需要的数据类型,因此,可以省略数据类型。
var contactName: String = "Gorden Freeman"
观察上面一行代码,String类型的变量contactName被初始化为字符串"Gorden Freeman",想一下,可以发现contactName必然是String类型。同样,编译器也能做同样的推断,所以上面一行代码可通过类型推断简写为
var contactName = "Gorden Freeman"
如果想先声明一个变量,待后续初始化,很明显此时类型推断不适用。
在Android Studio中,选中使用了类型推断的变量,然后同时按下Ctrl + Shift + p,会给出变量类型提示。
5. 运算符和表达式
5.1 运算符
下表列出了Kotlin中常用的运算符。
运算符 | 含义 | 示例 |
---|---|---|
=,赋值运算符 | 让运算符左侧的变量拥有与右侧有相同的值 | unreadMessages = newMessages |
+,加法运算符 | 将运算符两侧的值相加,常与赋值运算符一起用 | unreadMessages = newMessages + unreadMessages |
-,减法运算符 | 从运算符左侧的值中减去运算符右侧的值 | unreadMessages = unreadMessages - 1 |
/,除法运算符 | 用运算符右侧的值除运算符左侧的值,常与赋值运算符一起用 | firstShare = numSweets / numChildren |
*,乘法运算符 | 将运算符两侧的变量或者数相乘,通常与赋值运算符一起用 | answer = 10 * 10 |
++,自增运算符 | 对运算符左侧的值增1,等价与myVariable = myVariable + 1 | myVariable++ |
–,自减运算符 | 对运算符左侧的值减1,等价与myVariable = myVariable - 1 | myVariable– |
5.2 表达式
编程时是通过操作符来操作和修改变量的。当为了求得结果,将操作符和变量连接到一起时,就构成了表达式。