Kotlin Bootcamp 自学(2):Kotlin基础
目录
Kotlin Bootcamp 自学(2):Kotlin基础
运算符与数据类型 (Operators and Types)
此系列文章是博主在通过Kotlin官方的Kotlin Bootcamp for Programmers学习时记录的随笔。
博主之前接触过的编程语言主要有Python, C++, PHP,之前也有使用过Java的Springboot架构来编写一些项目内容。最近因为业务需要,需要接触安卓平台的开发,遂学习Kotlin。
该教程是基于IntelliJ IDEA为编译器的Kotlin教程。
前言
在上一篇文章Kotlin Bootcamp 自学(1):Hello Kotlin中,我们介绍了什么是Kotlin,如何安装IntelliJ IDEA和JDK,并且用Kotlin运行HelloWorld程序。本篇文章将着重介绍一些基础的Kotlin知识。
运算符与数据类型 (Operators and Types)
数值类型(Numerical Type)
同其他编程语言一样,Kotlin使用 +, -, *, / 来进行加、减、乘、除。
试着在REPL中分别执行以下每一行代码:
1+1
4-3
2*3
6/3
1.0/2.0
2.0*3.5
2*3.5
输出结果如下:
1+1
res0: kotlin.Int = 2
4-3
res1: kotlin.Int = 1
2*3
res2: kotlin.Int = 6
6/3
res3: kotlin.Int = 2
1.0/2.0
res4: kotlin.Double = 0.5
2.0*3.5
res5: kotlin.Double = 7.0
2*3.5
res6: kotlin.Double = 7.0
可以看到,Kotlin在数值类型运算中和Python时不同的。Python会使用/和//来区分非整除和整除,Kotlin则是继承了Java的特点,所有除法都是用“/”。刚刚从Python换到Kotlin的时候比较容易犯的错误如下:
#Python中"/"运算符的使用
7/2
3.5
//Kotlin中"/"运算符的使用
7/2
res10: kotlin.Int = 3
相对于Kotlin来说,Python对数值类数据的类型管理相对宽松。如果习惯了Python中的宽松用法,不用明确的数据类型声明,在Kotlin中很容易出现算术上的错误。
除了用+-*/进行符号运算,Kotlin还可以调用类方法来实现符号运算:
//plus()加法
3.5.plus(4)
res11: kotlin.Double = 7.5
//div()除法
7.5.div(1.5)
res12: kotlin.Double = 5.0
//minus()减法
2.4.minus(1.1)
res13: kotlin.Double = 1.2999999999999998
//times()乘法
3.2.times(4)
res14: kotlin.Double = 12.8
在这里,Kotlin相当于将数字封装成了一个Object(如:2.4是一个Double类的Object),并调用了对应类的运算方法来进行运算。这种方法称为boxing(装箱?)。
虽然boxing是一种可行的运算方式,但是官方不建议这种方法的使用。原因也很简单:被封装成object的数字占用的大小比单纯的数字更大,因此在效率上更低。
练习使用数据类型
在Kotlin中,我们可以使用val或者var来声明变量,比如:
val i = 3
i
res16: kotlin.Int = 3
我们也可以在声明变量时声明它的数据类型,比如:
val i: Int = 3 //声明变量i为Int类型
i
res16: kotlin.Int = 3
既然可以提前声明变量数据类型,那么赋值时的数据类型就要对应:
这里我们把3.0(double类型)赋给Int类型的变