首先我们需要知道,学习任何一门语言都离不开查阅她的官方文档,那么Kotlin的官方文档地址为:
http://kotlinlang.org/docs/reference/
首先我们来学习kotlin中的操作符,首先从加减乘除开始~
在REPL中输入1+1,接下来按下ctrl+enter(以后就用执行来代替这个组合键了),看看结果是不是出来了呢~肯定不会错的。
同理,我们还可以实验其他运算。
有一个需要注意的地方,乘法使用*,除法使用/,1/2的结果会为0,如果使用1.0/2.0,结果为0.5
同样,我们可以这样定义一个变量:
val fish=2
fish.times(6)
times是乘的意思,所以上面输出的结果为2乘6,是12
同理,还有div(除),plus(加),minus(减)
然后介绍了box操作(java里叫做“装箱”,反正我觉得叫box更好,中文翻译一点艺术性也没有)。
比如我们可以执行下面的代码:
1.toLong()
val boxed:Number=1
boxed.toLong()
box操作实际上是将一个原始变量(简单变量)变成一个对应的对象,这样就能使用这些对象的方法。
这里我们还学到了,单行注释使用//
接下来介绍的是kotlin中的可变变量和不可变变量,也就是其他语言中的变量和常量。
其中,变量可以随时修改,常量一旦有值了就不能再修改。
常量使用val定义,变量使用var定义(value和variable的前三个字母)
其中,如果某个变量的类型被决定了,也不能随便更改其类型。比如fish已经被赋值为一个数字,那么就不能再把字符串赋值给他。
同样的,我们也不能这样写:
var b:Byte=1
var i:Int=b
因为他们的类型不同,一个是Byte,一个是Int
但是,我们可以进行类型转换,这样就没毛病了:
var i:Int=b.toInt()
Kotlin其实有一个对于数字非常方便的写法,比如有一长串数字1000000
我们可以写成
val oneMillion=1_000_000
同理,对于16进制数字或者比特位同样有效
然后,我们不能随便把一个null赋值给一个Int对象,比如这样是不允许的:
var rocks:Int=null
但是我们这样写就可以了:
var rocks:Int?=null
下面是关于list(列表)的一些null相关:
//元素可以为null,列表不能为null
var lotsOfFish: List<String?> =listOf(null,null)
//列表可以为null,元素不能为null
var everMoreFish : List<String>?=null
//列表和元素都可以为null
var definitelvFish:List<String?>?=null
然后,我们可以使用?来判断一个对象是否为null,比如:
val l=b?.length?:-1
实际上等同于:
val l:Int=if(b!=null) b.length else -1
就是:如果b不为null,那么返回b的length,否则返回-1
使用两个叹号!!来当一个对象为null时抛出异常(两个叹号的作用是将任何类型转为非空:non-null类型):
b!!.length
如果b为null,则会引发一个异常
我觉得关于null这里还是挺麻烦的,所以找来了官方文档以供参考:
http://kotlinlang.org/docs/reference/null-safety.html#nullable-types-and-non-null-types