当前位置: 首页 > wzjs >正文

教学网站模板网络推广代理平台

教学网站模板,网络推广代理平台,怎么看网站是动态还是静态,建设银行网站的特点分析在 Kotlin 中,可空类型(如 String?)是语言设计的核心特性之一,旨在从编译时避免 NullPointerException(NPE)。 1 核心处理方式 1.1 安全调用操作符(?.) 直接调用可空对象的方法…

在 Kotlin 中,可空类型(如 String?)是语言设计的核心特性之一,旨在从编译时避免 NullPointerException(NPE)。

1 核心处理方式

1.1 安全调用操作符(?.

直接调用可空对象的方法或属性,若对象为 null,则返回 null,而非抛出异常:

val str: String? = null
val length: Int? = str?.length // str 为 null 时,length 直接为 null

链式调用:

// 传统方式(可能 NPE)
val result = obj.property.method()
// 安全方式
val result = obj?.propery?.method() // 任意环节为 null 时,直接返回 null
1.2 Elvis 操作符(?:

当可空值为 null 时,提供默认值或处理逻辑。

val str: String? = null
val length: Int = str?.length ?: 0  // str 为 null 时,返回 0// 安全调用 + Elvis 结合使用val name: String = user?.name ?: "Unknown" // 若 user 或 name 为 null,使用默认值
1.3 非空断言操作符(!!.

明确告诉编译器“该值不可能为 null”,若值为 null 则抛出 NPE(需谨慎使用)。

val str: String? = "Hello"
val length: Int = str!!.length

适用场景:

  • 初始化阶段已确保值不为空,但编译器无法推断;
  • 单元测试总验证代码逻辑的正确性;
1.4 let 作用域函数

对非空值执行操作,空值则跳过。

val str: String? = "Hello"
str?.let { nonNullStr ->// 仅在 str 非空时执行,nonNullStr 为非空类型 Stringprintln(nonNullStr.uppercase())
}
1.5 alsoapply 函数

对可空对象进行链式操作。

val user = nullableUser?.apply {age += 1 // 若 nullableUser 非空,执行 age 自增
}
1.6 空检查(if(x != null)

手动检查空值,编译器会只能转换类型。

val str: String? = "Hello"
if (str != null) {// str 在此作用域内自动转换为非空类型 Stringprintln(str.length) // 无需安全调用
}
1.7 延迟初始化(lateinit

用于标记非空但稍后初始化的变量(仅限 var)。

lateinit var user User // 必须确保初始化后再使用
fun initUser() {user = User("Eileen")
}
1.8 类型检查与智能转换

通过 is 检查类型后,编译器自动智能转换。

if (value is String) {println(value.length) // value 自动转为 String 类型
}
1.9 安全类型转换(as?

转换失败时返回 null,而非抛出 ClassCastException

val obj: Any = "Hello"
val str: String? = obj as? String // 转换成功,str 为 "Hello"
val num: Int? = obj as? Int // 转换失败, num 为 null
2.0 集合的可空处理

使用 filterNotNull()mapNotNull() 过滤或转换可空集合。

val list: List<String?> = listOf("a", null, "b")
val nonNullList = list.filterNotNull() // [a, b]val lengths = list.mapNotNull { it?.length } // [1, 1]
2.1 可空类型的扩展函数

自定义处理逻辑,例如为 String? 提供空值处理。

fun String?.orEmtpy(): String = this ?: ""val safeText: String = nullableText.orEmpty() // 若为 null,转为空字符串

2 总结

  • 优先使用安全调用(?.)和 Elvis(?.):简洁高效,避免 NPE;

  • 谨慎使用非空断言(!!):仅在确定值非空时使用,否则会破坏 Kotlin 的空安全设计;

  • 使用 let 作用域函数处理非空逻辑:避免空值分支的冗余代码;


文章转载自:

http://9CRRgFEn.tkmct.cn
http://IRC9GzOI.tkmct.cn
http://7VuUGp86.tkmct.cn
http://I21XWVDK.tkmct.cn
http://kH64slEc.tkmct.cn
http://tPzrA2mm.tkmct.cn
http://6WudHTuh.tkmct.cn
http://leyFQVfr.tkmct.cn
http://fkJkHDua.tkmct.cn
http://XjVzke2l.tkmct.cn
http://PLuAwmyi.tkmct.cn
http://TSvfvSRB.tkmct.cn
http://0OVmlAiu.tkmct.cn
http://JzeY0547.tkmct.cn
http://osHMiRhS.tkmct.cn
http://Xx5PdWB5.tkmct.cn
http://UTiLw8X1.tkmct.cn
http://md1FyNTR.tkmct.cn
http://Iuo3h6CY.tkmct.cn
http://n3PPbxLG.tkmct.cn
http://kNraR1Rp.tkmct.cn
http://begqbV8V.tkmct.cn
http://wVredUGv.tkmct.cn
http://q9IlrlJP.tkmct.cn
http://Jd85UFBH.tkmct.cn
http://s4kcTseK.tkmct.cn
http://Vzzod4nk.tkmct.cn
http://JtBDavob.tkmct.cn
http://7cgrKjox.tkmct.cn
http://t97tUtLk.tkmct.cn
http://www.dtcms.com/wzjs/711900.html

相关文章:

  • 企业网站管理系统 才能湖南岚鸿wordpress实时刷新模块
  • 网站栏目怎么做WordPress443端口免备案
  • 如何在网站上推广自己的链接立白内部网站
  • 青岛免费模板建站常州建设网站代理商
  • thinkphp做网站教程wordpress获取当前分类名
  • 网站代码输入完成之后要怎么做asp网站浏览器兼容
  • python 营销型网站建设企业注册名字查询
  • 淘宝联盟怎么做自已的网站百度免费注册
  • 想做电商网站运营要怎么做网络规划设计师和中级对比
  • 2022最新泛站群程序学做网站在什么地方学
  • 怎样做公司网站推广wordpress 绿色版
  • 网站建设时间深圳网站建设方案书
  • 承德做网站网站后台管理系统如何安装
  • 超酷网站欣赏wordpress+登录弹窗
  • asp做网站安全性房地产 网站 欣赏
  • 网站推广的方法ppt网络服务器忙
  • 网站地图制作wordpress清理缓存插件
  • 网站开发包括哪些短视频运营培训学校
  • iis新建网站无法浏览如何做像淘宝一样的网站
  • 公司网站维护费怎么做分录免费素材免费下载
  • html做分页的网站家用电脑可以做网站吗
  • 贵州省城乡建设局网签网站打开网站弹出窗口代码
  • 建德网站建设静态网页设计实训心得
  • 商城网站建设价格建网站 域名 空间
  • wordpress流量站中铁建设集团招聘官网
  • 网站制作 火星科技网站制作时间代码
  • 网站 ip修改备案流程深圳便宜的网站开发联系
  • codeigniter 手机网站开发WordPress文章白色标签
  • 网站制作简单协议wordpress投稿功能
  • 重庆最有效的网站推广自动发布 wordpress