专栏首页编程Kotlin学习(三)——基本类型,包,控制流:if、when、for、while,Break和continue

Kotlin学习(三)——基本类型,包,控制流:if、when、for、while,Break和continue

作者:刘某人程序员

声明:未经原作者允许请勿转载

一.基本类型

Kotlin的数字表现,如下

Double 64

Float 32

Long 64

Int 32

Short 16

Byte 8

这些就是全部的定义数字的方式了,而我们一般的写法也和JAVA类似

同时,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

同系列文章

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

刘桂林

微信号 : Android_LiuGuiLin

新浪微博:@刘某人程序员

本文来自企鹅号 - 刘桂林媒体

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Kotlin 1.2 的新增特性

    转自:开源中国 www.oschina.net/translate/whats-new-in-kotlin-12 多平台项目 (实验性) 多平台项目是 Kotl...

    企鹅号小编
  • Python爬虫:selenium的填坑心得

    在之前的文章中说过,模拟浏览器在现在的python库中有两个选择Mechanize与Selenium:然而Mechanize不支持JavaScript,Sele...

    企鹅号小编
  • 关于“机器学习”,医生们需要知道的5件事

    作者:麦子 转载请注明:解螺旋·临床医生科研成长平台 机器学习,简单可以理解为一种数据分析的方法。医生们对数据驱动型预测研究应该不陌生,比如利用风险评分来指导抗...

    企鹅号小编
  • JSTL中函数的简单使用

    因为函数的使用方法和EL表达式以及核心库中的标签的使用有点小区别,因此发这篇文章,并且根据fn的使用以及学习,后面我们就可以使用自定义的JSTL的函数库。 首先...

    the5fire
  • MySQL innodb_undo_tablespaces相关参数

    摘录自:http://gfsunny.blog.51cto.com/990565/1566683

    二狗不要跑
  • C# 转换类型和字符串

    本文会经常更新,请阅读原文: https://lindexi.gitee.io/lindexi/post/C-%E8%BD%AC%E6%8D%...

    林德熙
  • tomcat内存溢出问题记录

    问题说明: 公司内网环境中部署的jenkins代码发版平台突然不能访问了,查看tomcat的catalina.out日志发现报错如下: [root@redmin...

    洗尽了浮华
  • 1043 输出PATest (20 分)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    韩旭051
  • python中的zip、lambda、map操作

    python 中有几个比较酷炫的操作,比如:zip、lambda、map 一、zip操作 zip字面意思:拉链。这么记,把几个东西扔到一个包里,拉上拉链,就算打...

    菩提树下的杨过
  • 通过前序+中序和后序+中序来构建二叉树

    首先我们要知道,三种不同遍历方式的过程。看下图很容易理解,并且不容易忘。 前序遍历:根 左 右 中序遍历:左 根 右 后序遍历:左 右 根

    帅地

扫码关注云+社区

领取腾讯云代金券