【Kotlin基础part 2】

提示:本文为Kotlin学习的Part 2部分


提示:以下是本篇文章正文内容,下面案例可供参考

在这里插入图片描述

(1)空安全

kotlin中的非空类型

在Java中,运行程序时会经常出现空指针异常的问题,因为java在编译期对于会出现空指针的地方并不会报错,只有在运行时才会抛出异常。所以在编写代码时就得格外的小心,避免运行时崩溃的问题。

在这里插入图片描述

而kotlin则采取了在编译时就会报错,让开发者提前在编译期就重视空指针的问题。在kotlin中,正常情况下变量是非空类型的,不能直接赋空值。

在这里插入图片描述

kotlin中的可空类型

Kotlin中也是存在可空类型的,假如上面的String类型我一定要给它赋空值,只需将代码进行如下改写:

在这里插入图片描述

kotlin中的空安全

虽然Kotlin中允许存在空类型,让一个空类型变量运行就意味着风险依然存在,所以为了应对潜在风险,在kotlin中不允许在可空类型上调用函数。

安全调用操作符

有两种方法分别是:?和!!

对于?
在这里插入图片描述
输出:
在这里插入图片描述

此时就不会报错了,它就是kotlin中定义的一个安全调用操作符。这种写法的意思是当该变量为空时,它就不会调用这个函数了,会直接跳过,所以这个代码在运行时就不会报空指针异常,编译时也不会报错了。

对于!!
在这里插入图片描述
输出:
在这里插入图片描述

此时可以通过编译,但运行后会抛异常。

使用if判空

当然在kotlin中还是可通过if判空来保证空安全的,但大量的if判空操作会显得代码不优雅。所以相比起来使用安全调用操作符会更灵活,代码也更整洁,可以用安全操作符进行多个函数的链式调用。

在这里插入图片描述

空合并操作符

Java中的三元表达式写法
在这里插入图片描述
Kotlin中写法为
在这里插入图片描述

let

一、在同一个作用域下操作变量,使代码更加优雅

Java
在这里插入图片描述
Kotlin
在这里插入图片描述
二、判断null操作
原本的Kotlin写法
在这里插入图片描述
Kotlin中可以写为
在这里插入图片描述

(2)异常

在这里插入图片描述

(3)字符串

subString

在java中,subString是用来截取字符串的,在Kotlin中也是一样的,只是Kotlin对subString加了一些新的传参方式,支持IntRange类型的参数,IntRange表示一个整数范围类型。

在这里插入图片描述

split

在这里插入图片描述

==

kotlin中==用于比较内容,而 ===用于比较是否指向同一个对象的引用。

在这里插入图片描述

需要注意的是:因为不管是在Java还是Kotlin中,如果直接为一个String类型的变量赋值,第一次出现的,会被存放在字符串常量池,然后返回字符串常量池里的引用,否则则直接返回字符串常量池里的引用。

forEach

forEach用于字符串的遍历

在这里插入图片描述

(4)数据类型

Double->Int

在这里插入图片描述

(5)内置函数

apply

apply函数是一个配置函数,当接受者(对象)调用apply函数时,可以通过该函数来对对象进行配置。配置完成后会返回配置好的对象。

在这里插入图片描述

let

let函数可以使某个变量作用于它的lambda表达式中,让后用默认的it关键字引用这个变量;

在这里插入图片描述

let不同于apply的地方就是,let会将接受者作为值参传入给lambda中,通过it关键字对接收这进行操作。而apply则是默认在该函数中的作用域都是针对接收者的,不需要传东西进去。执行完后,let会返回lambda表达式的最后一行,apply返回当前对象。

run

在这里插入图片描述

run和apply有些相似,他们都是默认在该函数中的作用域都是针对接收者的(调用该函数的对象)。但是他们二者返回的内容并不同,run函数返回的是lambda的结果(结果返回类似let)。

with

with函数是run函数的变体,二者功能行为相同,但调用方式不同

在这里插入图片描述

also

also和let函数功能相似,also也是将接收者作为值传入到lambda中,但不同于let最后返回的是lambda结果,also返回的是接收者对象。

在这里插入图片描述

takeIf

takeIf函数需要判断lambda中提供的条件表达式给出的结果,如果是true,则从takeIf函数返回接收者对象,如果是false,则返回null。

在这里插入图片描述

takeUnless

与takeIf相反,只有判断结果是false,才会接受对象

(6)集合

集合——List

基本操作

在这里插入图片描述

kotlin中集合获取方式类似于java中获取数组元素,并且kotlin中获取集合元素上还提供了多种安全的方式:
getOrElse():需要传两个参数,第一个是索引值,第二个是提供默认的lambda表达式,如果索引值不存在,会显示该lambda表达式的信息

在这里插入图片描述

getOrNull:如果为空则直接返回null结果,不会抛出异常

在这里插入图片描述

可变列表

list集合并没有提供动态添加或删除元素的函数,而在Kotlin中创建可变列表需要使用mutableListOf。

在这里插入图片描述

在kotlin中也可以使用+或者-来实现:

在这里插入图片描述

还可以用于删除指定元素

在这里插入图片描述

遍历集合

包括:

  • for… in
  • forEach
  • forEachIndexed

在这里插入图片描述

解构集合

在这里插入图片描述

集合—Set

跟Java一样,List中的元素是可以重复的,而Set集合不能存储重复元素;

基本操作

在这里插入图片描述

Set集合创建方式与List方式差不多,但是元素获取Set集合是通过elementAt(index)这个函数来读取的。

可变集合

和List集合一样,Set集合也不能直接进行动态插入或删除,需要通过mutableSetOf创建可变Set集合。

集合转换

Set与List集合之间可以互相转换

在这里插入图片描述

集合—Map

创建map

在这里插入图片描述

to函数可以将左右两值转化成一个Pair对象,所以上面的代码也可以写为:

在这里插入图片描述

读取map

在这里插入图片描述

遍历map

在这里插入图片描述

可变map

在这里插入图片描述

数组类型

Kotlin中提供各种Array
在这里插入图片描述


总结

提示:kotlin学习part two

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值