当前位置:网站首页>【kotlin】第三天
【kotlin】第三天
2022-07-04 23:02:00 【亚太地区百大最帅面孔第101名】
这里是引用
️ Author: 老九
️ 个人博客:老九的CSDN博客
个人名言:不可控之事 乐观面对
系列专栏:
这里是引用
文章目录
可空性特点(?)
fun main() {
var name:String = "lmp"
//这个默认是不可空类型
//name = null
println(name)
//声明时:指定为可空类型(类型后面加一个问号)
var name2 : String ?
name2 = null
println(name2)
}
安全调用操作符
fun main() {
var name :String? = "zhangsan"
name = null
//把第一个字母改成大写
//如果name是null,问号后面的代码就不执行,就不会引发空指针异常
val r = name?.capitalize()
println(r)
}
使用let的安全调用
package com.lmp.s1
fun main() {
var name:String? = null
// var name = "lmp"
name = ""
var r = name?.let {
//it == name 本身
//如果name为空,问号后面不执行
if(it.isBlank())//如果name是”“(没有内容)
{
"default"
}else{
"{
$it}"
}
}
println(r)
}
非空断言操作符(!!)
fun main() {
var name :String? = null
//!! 断言
//不管name是不是null,都执行
var r = name!!.capitalize()
println(r)
}
使用if判断null值
fun main() {
var name:String? = null
if(name != null){
var r = name.capitalize()
println(r)
}else{
println("name is null")
}
}
空合并操作符
fun main() {
var info : String ? = "李小龙"
info = null
//?:如果前面的是空,就输出后面的东西
//xxx ?: "原来你是null" 如果xx等于null,就会执行?:后面的区域
println(info ?: "原来你是null" )
//let函数+空合并操作符
println(info ?.let{
"【$it】"} ?:"原来你是null")
}
异常处理与自定义异常
fun main() {
try{
var info :String ?= null
checkException(info)
println(info!!.length)
}catch(e:Exception){
println("$e")
}
}
fun checkException(info: String?) {
info ?: throw CustomException()
}
class CustomException : IllegalArgumentException("你的代码太不严谨了")
先决条件函数
fun main() {
val value1 :String ?= null
val value2 :Boolean = false
//抛异常的函数
//checkNotNull(value1)
//抛异常的函数
//requireNotNull(value1)
//为false也抛异常
require(value2)
}
substring函数
const val INFO = "lmp is Success Result"
fun main() {
val indexOf = INFO.indexOf("i")
println(INFO.substring(0, indexOf))
println(INFO.substring(0 until indexOf))
}
split操作
fun main() {
val jsonTest = "Derry,lmp"
val list = jsonTest.split(",")
//解构操作
val (v1,v2) = list
println("$v1.$v2")
}
replace完成加密解密操作
fun main() {
val sourcePwd = "lmp"
println("原始密码是$sourcePwd")
//加密操作:就是把字符替换成数字
val newPwd = sourcePwd.replace(Regex("[lm]")){
when(it.value){
"l" -> "9"
"m" -> "8"
"p" -> "7"
else->it.value
}
}
println("加密后的密码是$newPwd")
//解密操作
val sourcePwdNew = newPwd.replace(Regex("[987]")){
when(it.value) {
"9" -> "l"
"8" -> "m"
"7" -> "p"
else -> it.value
}
}
println("解密后的密码是$sourcePwdNew")
}
== 和 ===比较操作
fun main() {
//== 值 内容的比较 相当于java的equals
//=== 引用的比较
val name1 = "lmp"
val name2 = "lmp"
val name3 = "ww"
println(name1.equals(name2))
println(name1 == name2)
println(name1 === name2) // true,因为引用的是字符串常量池那个字符串
println(name1 == name3)
val name4 = "lmp".capitalize()
println(name1 == name4)
println(name1 === name4)
}
————————————————————————
码字不易,大家的支持就是我坚持下去的动力
版权声明:本文为CSDN博主「亚太地区百大最帅面孔第101名」的原创文章
边栏推荐
- Excel 快捷键-随时补充
- Application of machine learning in housing price prediction
- Basic knowledge of database
- 字体设计符号组合多功能微信小程序源码
- Set up a website with a sense of ceremony, and post it to 1/2 of the public network through the intranet
- Observable time series data downsampling practice in Prometheus
- Explanation of bitwise operators
- Qt加法计算器(简单案例)
- HMS core machine learning service
- Summary of wechat applet display style knowledge points
猜你喜欢
可观测|时序数据降采样在Prometheus实践复盘
MariaDB的Galera集群-双主双活安装设置
Redis:Redis的事务
ETCD数据库源码分析——处理Entry记录简要流程
debug和release的区别
ICML 2022 || 3DLinker: 用于分子链接设计的E(3)等变变分自编码器
Editplus-- usage -- shortcut key / configuration / background color / font size
PS style JS webpage graffiti board plug-in
A complete tutorial for getting started with redis: redis shell
CTF競賽題解之stm32逆向入門
随机推荐
QT drawing network topology diagram (connecting database, recursive function, infinite drawing, dragging nodes)
华泰证券低佣金的开户链接安全吗?
【js】-【排序-相关】-笔记
A complete tutorial for getting started with redis: redis usage scenarios
Object detection based on OpenCV haarcascades
推荐收藏:跨云数据仓库(data warehouse)环境搭建,这货特别干!
高通WLAN框架学习(30)-- 支持双STA的组件
Compare two vis in LabVIEW
蓝天NH55系列笔记本内存读写速度奇慢解决过程记录
云服务器设置ssh密钥登录
Complete tutorial for getting started with redis: bitmaps
Qualcomm WLAN framework learning (30) -- components supporting dual sta
Redis入门完整教程:Redis使用场景
法国学者:最优传输理论下对抗攻击可解释性探讨
Question brushing guide public
PS style JS webpage graffiti board plug-in
C语言快速解决反转链表
Redis入门完整教程:慢查询分析
Docker镜像的缓存特性和Dockerfile
小程序vant tab组件解决文字过多显示不全的问题