首页 > 其他分享 >Kotlin 语法糖(对象不为空返回自身,为空返回其他)

Kotlin 语法糖(对象不为空返回自身,为空返回其他)

时间:2023-06-23 15:23:22浏览次数:42  
标签:返回 为空 val 对象 Kotlin list result str arrayListOf

原文地址: Kotlin 语法糖(对象不为空返回自身,为空返回其他) - Stars-One的杂货小窝

开发中,经常会有这样逻辑:

判断对象如果不为空,则取对象本身;
为空,则得到其他对象;

然后每次写个if还是有些啰嗦,可以使用kotlin的语法糖

可空对象使用?:

如果是可空对象,可以使用?:来实现

原来逻辑:

var str :String?=null

val result = if (str==null) {
	"空数据"
} else {
	str
}

改造后:

var str :String?=null
val result = str?:"空数据"

扩展方法

kotlin提供了两个扩展方法

  • ifBlank
  • ifEmpty

比如说一个列表List对象

原逻辑:

val list = arrayListOf<String>()
val result = if (list.isEmpty()) {
	arrayListOf("空数据")
} else {
	list
}

改造后:

val list = arrayListOf<String>()
val result =str.ifEmpty { 
	arrayListOf<String>("空数据")
}

同理,ifBlank也是一样的用法

val str =""
val result =str.ifBlank { 
	"空数据"
}

标签:返回,为空,val,对象,Kotlin,list,result,str,arrayListOf
From: https://www.cnblogs.com/stars-one/p/17499198.html

相关文章

  • nslookup返回信息说明
    先看一个示例: 如上图,我们把输出结果分成三部分,下面分别来描述: 第一部分:这里是我们本机的DNS服务器信息。客户机先到主DNSServer进行连接查询,结果发现异常,连接失败,于是出现了**can’tfindservernameforaddress*******:serverfailed这个提示;按照规则主DNS无法连接,会自动......
  • Kotlin入门|Android Kotlin 初学者学习网站+最新学习资源
    Kotlin是一门可以运行在Java虚拟机、Android和浏览器上的静态语言,它与Java100%兼容。如果你对Java非常熟悉,一般上手Kotlin也会比较容易。在我从事Android开发的多年来,也积累了很多专业的学习网站和宝贵的学习资源,现无偿分享给大家,不求面面俱到,只希能给各位Android开发者和带来......
  • 安卓系列之 kotlin 项目实战--基础 demo
    本章记录一个基础的demo项目,使用kotlin+协程+retrofit+okhttp3+MVVM实现。功能需求调用天气api,在主页显示天气情况。大致流程api申请及实体分析网络请求权限添加kotlin,协程,网络框架等依赖网络框架Retrofit+okhttp3主页页面绘制基础类构建调用接口并显示在当前页面api申请......
  • Android-Kotlin-单例模式
    先看一个案例,非单例模式的案例:描述Dog对象:packagecn.kotlin.kotlin_oop08classDog(varname:String,varcolor:String){/***显示狗狗的名字*/funshowDogName(){println("狗狗的名字是:${this.name}")}/***显示狗狗的颜......
  • Android-Kotlin-枚举ENUM
    为什么要用枚举?枚举的好处有:1.使程序更容易编写和维护2.防止用户乱输入,是一种约束来看两个案例案例一星期:星期的枚举:enumclass类名{}packagecn.kotlin.kotlin_oop09/***定义星期的枚举类*/enumclassMyEnumerateWeek{星期一,星期二,星期三,星......
  • Android-Kotlin-函数表达式&String与int转换$异常处理
    Kotlin的函数表达式:packagecn.kotlin.kotlin_base03/***函数第一种写法*/funaddMethod1(number1:Int,number2:Int):Int{returnnumber1+number2}/***函数第二个种写法*/funaddMethod2(number1:Int,number2:Int)=number1+number2/***......
  • Android-kotlin-接口与多态的表现
    上一篇博客介绍了Android-Kotlin-抽象类与多态的表现;而这一篇博客专门介绍下接口与多态的表现1.选择包名,然后右键:2.选择Class类型,会有class:3.选择File类型,不会自动有class:5.选择interface,是创建接口:6.目录结构:1.定义手机充电接口标准规范InterfacePhone:packagecn.kotlin.kot......
  • Android-Kotlin-When&类型推断
    Kotlin的when表达式TextEngine描述文字处理对象:packagecn.kotlin.kotlin_base02/***描述文字处理对象**valtextContent传入进来的文字内容val是常量*/classTextEngine(valtextContent:String){/***处理文字,然后返回*返回完整的字符串......
  • Android-kotlin的继承
    上一篇博客讲了Android-kotlin的配置/入门,然后简单的实现了一个计算器功能。今天我们来讲讲kotlin中的继承是怎样的。1.先看一个案例,子类使用到父类的资源【案例一】父类张翠山:packagecn.kotlin.kotlin_oop03/***描述父对象:张翠山**personDescribe此人的简介/var......
  • Android-kotlin-具名参数
    先看一个这样的案例,【案例一】:packagecn.kotlin.kotlin_base05funshowAction1(country:String,volk:String){println("我的祖国是${country},我的民族是$volk")}funshowAction2(country:String,volk:String){println("我的祖国是${country},我的民族是......