作者:刘某人程序员
博客:http://blog.csdn.net/qq_26787115
声明:未经原作者允许请勿转载

一.基本类型
Kotlin的数字表现,如下
Double 64
Float 32
Long 64
Int 32
Short 16
Byte 8
这些就是全部的定义数字的方式了,而我们一般的写法也和JAVA类似
十进制: 10086
十六进制:0x0F
二进制: 0b00001011
Long类型:10086L
Float类型:10086f
Double类型:100.86
同时,Kotlin上有一个下划线的定义,可以让代码的可读性更加的强,我们来看下

这段代码输出的数字

下划线并不像JAVA一样会影响我们的代码,而是让我们的代码可读性变得更强
并且在JAVA平台中,== 和 === 的概念 就跟我们JAVA中 == 和eques类似

这段代码中,我们可以看到,我们定义了一个Inta,又定义了两个可空Int 赋值 a,结果算出===false,但是如果我们 改成== ,那就是值相等了,===是地址相同,很明显,我们是两个不同的变量,所以false
另外,在Kotlin中,小类型也不是大类型的子类,所以不存在强转的概念
比如这种错误的示范

这就隐式转换,但是我们可以用个显示转换来达到我们的需求

每个数字都是可以通过显示转换来达到自己想要的转换
我们再来看下逻辑运算
shl(bits) ‒ 有符号左移 (Java 的 << )
shr(bits) ‒ 有符号右移 (Java 的 >> )
ushr(bits) ‒ 有符号右移 (Java 的 >>> )
and(bits) ‒ 位与
or(bits) ‒ 位或
xor(bits) ‒ 位异或
inv() ‒ 位非
我们来写一段演示的示例

再来看下Char,Char不能作为一个单独的字符或数字存在,需要‘’单引号声明,比如

我们再来看下如何定义一个数组

listOf直接声明,arrayOfNulls声明一个长度固定的空数组Array定义一个指定长度,值的数组
再来看下字符串

这是我们常见的字符串,可以包含转义,还有一种

这是原生的字符串,用三个”“”表示,里面不包含转义,是什么就是什么,当然,这样的话里面就有很多空格了

我们可以|声明当前起始位,并且trimMargin()去除空格,得到的结果

如果你没有这样处理的话,你输出的值是这个样子的


二.包
包的作用我相信大家都是知道的


三.控制流:if、when、for、while
1.if表达式
在kotlin中,if的用法不局限于判断,他还会有返回,所以我们的写法也很多,比如

2.When表达式

但是我们一般是需要else结尾的,而且我们可以用in来表达

当然,你还可以用is来判断类型,这里就不讲了
3.For 循环

4.While 循环


四.Break和continue
Kotlin 有三种结构化跳转表达式:
return。默认从最直接包围它的函数或者匿名函数返回。
break。终止最直接包围它的循环。
continue。继续下一次最直接包围它的循环。
我们来看一个例子

这里循环一个数组,如果等于5就分别执行continue,break,return,如果是break,return会跳出循环,也就
只会打印1,3而continue会跳出本次循环,也就会打印1,3,7,9
如果有兴趣的话,可以来Github参与一下
Kotlin:https://github.com/LiuGuiLinAndroid/Kotlin

同系列文章
Kotlin学习(一)—— IDEAIntelliJ IDEA的安装配置及Kotlin的环境部署
Kotlin学习(二)—— 基本语法函数变量,字符串模板条件表达式,null,类型检测,for,while,when,区间,集合

一命二运三风水,四修阴德五读书!

刘桂林
微信号 : Android_LiuGuiLin
新浪微博:@刘某人程序员