栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

(一)Kotlin的简介、变量、函数、语法糖、程序的逻辑控制(kotlin中的if,when,while,for与java的异同)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(一)Kotlin的简介、变量、函数、语法糖、程序的逻辑控制(kotlin中的if,when,while,for与java的异同)

Kotlin在Android开发中的简单使用
  1. Kotlin语言简介
    kotlin之所以能在java虚拟机上运行,是因为kotlin会在编译的时候生成java虚拟机能够识别的字节码文件,也就是java编译后一样规格的.class文件。

kotlin在语言安全性方面下了很多功夫,几乎杜绝了空指针异常这个全球崩溃最高的异常。

2.如何运行kotlin代码
①使用IntelliJIDEA,对kotlin的支持非常好,可以直接创建kotlin项目,独立运行kotlin代码。

②在线运行kotlin代码,为了方便开发者体验kotlin编程,JetBrains专门提供了一个可以在线运行kotlin的网站,
地址为:https://try.kotlinlang.org(国内体验感有限,和GitHub的痛点一样吧)

③使用AndroidStudio(后续文中均称为AS),新建项目后在MainActivity同级目录下可以创建kotlin文件,在这里写就行。

3.变量和函数
①变量
在kotlin中只允许在变量前声明两种关键字
val(value的简写)用来声明一个不可变的变量,对应java中的final变量
var(variable的简写)用来声明一个可变的变量,对应java中的非final变量

kotlin拥有出色的类型推导机制
例:val a = 10
(kotlin每一行代码的结尾是不用加分号的)
这里定义一个变量a,赋值为10,会被自动推导成整形变量,其他类型同理

如果对一个变量延迟赋值的话,kotlin的自动推导机制不生效,此时需要进行显示声明变量类型,语法如下
val a : Int = 10
在显示声明类型后,不可再把其他类型的变量赋值给a,否则编译器抛出类型不匹配的异常

Kotlin完全抛弃了java中的基本数据类型(虽然只相差了一个字母,Int与int),全部使用了对象数据类型。在java中int是关键字,而在kotlin中Int变量成为了一个类,它拥有了自己的方法和继承结构


永远优先使用val声明一个变量,如果没有办法满足需求的 时候再去改为var

4.函数
函数function其实和方法是同一个概念
java中倾向于叫方法,而kotlin中倾向于叫函数

定义函数的关键字fun,语法如下
fun methodName(param1 : Int ,param2 : Int):Int{
return 0;
}
对于()后面的:Int是用来指定函数返回值类型的

尝试定义一个有意义的函数
fun largeNumber(num1:Int,num2:Int):Int{
return max(num1,num2)
}
这里用到了kotlin中的一个内置函数max()

建议经常使用AS的代码补全功能,不仅补全代码,还能自动导入相应的包,手敲相应的函数没有导入包很可能报错

第一个语法糖,当一个函数只有一行代码时,kotlin允许我们不必写函数体,可以直接将其写在函数定义尾部,中间用等号连接,例如
funlargeNumber(num1:Int,num2:Int):Int=max(num1,num2)
并且由于类型自动推导机制,还可以进一步化简
funlargeNumber(num1:Int,num2:Int)=max(num1,num2)

5.程序的逻辑控制
①if条件语句

Kotlin中if用法与java中的一致,不同的是,kotlin中的if是可以有返回值的,返回值就是if语句每一个条件中的最后一行代码的返回值。因此上面的代码还可以化简

实际上value也可以不要,可以直接写到return中

再结合前面的语法糖,直接使用“=”作为返回,省略return等,进一步简化

或者这样

②when条件语句
kotlin中的when有点类似于java中的switch

java中switch的缺陷:switch只能传入整形或短于整形的变量作为条件,jdk1.7后增加了字符串变量的支持,但如果你的帕努单逻辑使用的不是上述变量是不支持的,另外就是每次case条件后就要break,不然程序一直往下依次执行

我们来看一下一个成绩查询功能,输入姓名返回学生考试成绩(开头是fun,打多了个‘’)

以上也用到了单行代码的语法糖,用了等号省略return

下面我们看一下用when来改写上述方法

kotlin中,when是允许传入任意类型参数的,并且和if一样拥有返回值,格式为:
匹配值 ->{执行逻辑}
如果只有一行代码,{}也可以省略

除了精确匹配,when还可以进行类型匹配
示例如下:

这里用到了关键字is,相当于java中的instanceof关键字。

由于checkNumber()函数接收一个Number类型的参数,这是kotlin内置的一个抽象类,像Int Long Float Double等于数字相关的类都是它的子类,可以用来判断传入的参数类型,示例如下:




输出为参数类型,或者是不支持

when还有一种不带参数的用法(kotlin中判断字符串或对象是否相等可以直接使用呢==关键字,不像java中要调用equals()方法)

③循环语句
java与kotlin的while用法和使用技巧一致,此处忽略

java中常用的for-i循环在kotlin中被直接舍弃,java中的for-each循环被kotlin大幅加强变成了for-in循环

kotlin中有区间的概念,
其中两端闭区间关键字为…
例如:val range = 0 … 10
实际表示的是[0,10] 就是数学上的区间呗
左闭右开的区间关键字为until
例如:val range = 0 until 10
实际表示[0,10)

再回到刚刚的for-in循环介绍

感觉挺亲和的,毕竟in在英语中解释为在什么里面
所以就是i在集合[0,10]中遍历打印

如果有想跳过的元素,使用step关键字
step是用来改变递增关系的,原先默认遍历一次增加1,用了step之后就会改变递增值,直接代码实例


…和until关键是都是用于升序区间的,要求左端必须小于右端,但如果希望降序呢?用downTo关键字

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/274634.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号