首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从Java到Kotlin(二)

基本语法

本篇文章主要对比Java跟Kotlin的基本语法在写法上的区别。无论学习何种语言,学习它的基本语法都是第一步。

目录

一、分号;

二、定义变量、常量

三、字符串模板与字符串面值

四、自动类型转换

五、定义函数

六、注释

七、控制流

八、集合

一、分号;

在Java中,使用分号标志一句完整代码的结束。

在Kotlin中,一句代码结束后不用添加分好。

二、定义变量、常量

Java定义变量时把数据类型放在前面,变量名放在后面。

Kotlin用定义变量,把数据类型放在后面,并用冒号隔开。

Java用定义变量,把放在数据类型前面。

Kotlin用定义变量,把数据类型放在后面,并用冒号隔开。

三、字符串模板与字符串面值

1.字符串模板

在Kotlin中,字符串可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($)开头,由一个简单的名字构成,如:

上面几行代码在Java中就等于

2.字符串字面值

Kotlin有两种字符串面值,转义字符串和原生字符串。

转义字符串

转义字符串跟java字符串一样,转义采用反斜杠方式,如:

运行代码:

原生字符串

原生字符串可以用三个"""作为分隔符括起来,内部没有转义并且可以包含换行和任何其他字符:

运行代码:

可以看到前面有一段空格,这个时候可以通过trimMargin() 函数去除前导空格:

运行代码:

如上面例子所示,在需要去掉前导空格的那一行前面加上竖杠"",再调用trimMargin()方法,就可以去掉前导空格。

四、自动类型转换

Kotlin在定义变量或者常量时给他赋值,可以不指定他的类型,如:

五、定义函数

1.无返回值无参数

Java定义无返回值无参数方法,返回类型是void

Kotlin定义无返回值无参数函数,返回Unit

也可以什么都不返回

可以看到Kotlin返回值的类型在函数末尾指定,并用冒号分隔。

2.无返回值有参数

Java定义无返回值有参数方法,返回类型是void

Kotlin定义无返回值有参数函数,返回Unit(或不返回)

括号里的参数跟定义变量常量一样,先指定参数名,再指定参数类型,并用冒号分隔。

3.有返回值有参数

Java定义有返回值有参数方法,返回类型是String

Kotlin定义有返回值有参数函数,返回类型是String

返回值的类型在函数末尾指定,并用冒号":"分隔。

六、注释

1. 单行注释

Java跟Kotlin一样

2. 多行的块注释

Java跟Kotlin都可以这样

Kotlin块注释支持嵌套,代码如下:

而Java不支持块注释嵌套

七、控制流

1.if表达式与三元运算符

Kotlin和Java中的条件语句用法大致相同,其中不同的是Kotlin中的if语句本身就是表达式,有返回值,类似于Java的三元表达式,如下所示:

Java三元表达式

对应的Kotlin中的if表达式

如果 if 或 else 后面是代码块的话

2.when与switch

Kotlin中没有Java的switch语句,取而代之的是更强大的when语句,如下所示:

Java中的switch语句

Kotlin中对应的when语句

注意:when语句在满足条件的分支执行后,会终止when语句执行,所以不用像switch语句那样每一个case都加上break。

如果很多分支需要用相同的方式处理,when语句可以把多个分支条件放在一起,用逗号分隔,如下所示:

when语句还能像if语句那样作为表达式:

3.关键字in

当我们要判断5是否在1-10里面,在Java中可以这么写

如果同样的判断用Kotlin来写,可以用关键字来判断

4.关键字is

在Kotlin中可以用关键字判断对象的类型,如下所示:

注意上面出现了,是Kotlin中所有类都有一个共同的父类,有点像Java中的,但这个类不是java.lang.Object,这个类只有equals()、 hashCode()、toString()方法。

5.for循环

如果你想要通过索引遍历一个数组或者一个list,可以使用for循环,如下所示:

Java代码

Kotlin代码

除了普通的用法之外,Kotlin的for循环还可以这样:

6.while 循环

Java跟Kotlin的while循环是一样的,分为while和do…while:

八、集合

Java中的List,Set,Map:

Kotlin也有List,Set,Map,但Kotlin中的List,Set,Map都是不可修改的

上图红色代表编译错误。就是说Kotlin的List,Set,Map中没有可以修改集合的方法,是只读的。当然Kotlin还提供了可以读写的集合,分别是MutableList,MutableSet,MutableMap,这些集合有可以修改集合的方法。

下面介绍一些Kotlin常用创建集合对象的函数:

listOf:用于创建List对象

setOf:用于创建Set对象

mapOf:用于创建Map对象

mutableListOf:用于创建MutableListOf对象

mutableSetOf:用于创建MutableSetOf对象

mutableMapOf:用于创建MutableMapOf对象

总结

本篇文章主要对比了Java跟Kotlin的基本语法在写法上的区别。会了基本语法,就等于踏出了从Java转到Kotlin的第一步。

参考文献:https://www.kotlincn.net/docs/reference/basic-syntax.html

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180208G03Z3600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券