Kotlin 常见的符号使用说明










故屿


  • Kotlin 是什么?

Kotlin [科特林] 是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发;
Kotlin 是一门静态语言,支持多种平台,包括移动端、服务端以及浏览器端;
Kotlin 还是一门融合了面向对象与函数式编程的语言,支持泛型、安全的空判断,并且 Kotlin 与 Java 可以做到完全的交互。

在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。




Kotlin 的作用:

①简洁: 大大减少样板代码的数量。
②安全: 避免空指针异常等整个类的错误。
③互操作性: 充分利用 JVM、Android 和浏览器的现有库。
④工具友好: 可用任何 Java IDE 或者使用命令行构建。




Kotlin 常用的一些复合符号( ‘?’ ‘?:’ ‘!!’ ‘::’ ‘. .’ ‘as?’ )




1、 [ : ] ------ 冒号 操作符

" : "

操作符用来定义变量、类的继承等

" : " 冒号跟引用类型。


  • " : " 操作符用来定义变量、类的继承等

//定义变量
var name: String
//继承类
class MainActivity : AppCompatActivity()





2、 [ ? ] ------ 问号

" ?"

修饰在成员变量的类型后面,表示这个变量可以为空(null),系统在任何情况下不会报它的空指针异常;
" ? " 修改在对象后面代表该对象如果为空(null),则不处理后面逻辑;

如果我们定义的变量是一个可以为空的类型,则要用【 String? 】。

故屿

  • " ?" 表示这个对象可以为空

//在变量类型后面加上 ? ,代表该变量是可为空
var age: String? = "23" 

// 如果 str 不能转为 Int 类型,则返回 null
fun parseInt(str: String): Int? {
    
     
 // nothing
}




3、 [ !! ] ------ 双感叹号 操作符

" !! "

放在对象或方法传递实参后面,表示不能为空(null),如果为 null 则抛出异常;
Kotlin 不推荐使用非空断言,通常我们会用 " ?: " 来防止程序运行时报空指针异常而崩溃;

" !! " 的用法相当于 Java 里的 if else 判断是否为 null。

故屿


  • " !! " Null 检查机制符

//非空 b,如果 b 为空,则抛出空指针
val l = b!!.length




4、 [ ?: ] ------ 感叹号冒号 操作符(Elvis)

" ?: "

可以指定可空变量为空时,调用该变量中的成员方法或属性的返回值;
其语法格式为: “表达式A ?: 表达式B”
如果左侧表达式A 非空,则返回左侧表达式A 的值,否则返回右侧表达式B 的值。当且仅当左侧为空时,才会对右侧表达式B 求值。

" ?: " 的用法类似于 Java 里使用三目运算符。

故屿


  • " ?:" 表示非空则使用,否则返回指定数值

//a 不为空,返回 a 的长度,否则返回 -1
val 1ength==a?.length?:-1
//相当于
val length:Int=if(a!=null)a.length else -1




5、 [ :: ] ------ 双冒号 操作符

" :: "

表示把一个方法当做一个参数,传递到另一个方法中进行使用,通俗的来讲就是引用一个方法;可以用来得到类的 Class 对象;

" :: " 双冒号跟方法名 作用就是将方法作为参数传入。


  • " :: " 可以用来得到类的 Class 对象

//得到 SecondActivity 对象
startActivity(Intent(this@MainActivity, SecondActivity::class.java))





6、 [ as ] ------ 类型转换运算符

" as "

表示如果类型转换不成功,类型转换操作符通常会抛出一个异常,因此不安全的类型转换 使用操作符 as ;
当类型转换失败时会返回 null,为了避免抛出异常,可以使用安全的类型转换操作符 as?;

" as " 若把值转换成给定的类型,如果类型不合适就返回 null。

故屿





7、 [ . . ] ------ 双点号 区间操作符

" . . "

表示区间(或叫作范围)表达式由具有操作符形式 … 的 rangeTo 函数辅以 in 和 !in 形成。

in 操作符,代表 i 在某一个区间类;
!in 代表 i 不在某一个区间类;
. . 闭区间操作符,代表在 a 到 b 区间类,包含 a 和 b;
until 半闭区间操作符,代表 a 到 b 区间,包含a 不包含 b;
downTo() 函数:倒叙区间内循环,a 到 b 区间倒叙迭代数字;
step() 函数:跳跃式函数,奇偶判断选择,可以指定任意步长。


// 输出数字 “ 1 到 10 ”
if (i in 1..10) {
    
     print(i)} 	
// 输出数字 “ 1 到 9 ”同[1,10)
for (i in 1 until 10) {
    
     print(i)} 	
// 输出数字 “54321”
for (i in 5 downTo 1) print(i) 
// 输出数字 “ 135 ”
for (i in 1..5 step 2) {
    
     print(i)} 	
// 输出数字 “ 531 ”
for (i in 5 downTo 1 step 2) {
    
     print(i)} 	



// 如果 i 在 1 到 10 十个数之间,就输出 i
if(i in 1..10){
    
     
    print (i)
}
// 如果 i 不在 1 到 10 十个数之间,就输出 i
if(i !in 1..10){
    
     
    print (i)
}
// 什么都不输出,注意这种递减情况建议使用 until 或 downTo 
for (i in 4..1){
    
    
	 print(i)
 }
// 如果 i 在 1 到 10 九个数之间(不包含 10),就输出 i
if(i in 1 until 10){
    
     
    print (i)
}





8、 [ -> ] ------ 中横杆大于号 操作符

" -> "

单从形态上看,是一种流向和对应的关系;
表示即前面的语句执行之后,将执行流转到指向的语句,并且是对应的。





9、 [ == 和 === ] ------ 等号 操作符

== 判断是否相等,比较两个数值大小。
=== 判断值及引用是否完全相等,比较两个对象地址。



var a:Int = 10
print(a===a)	//结果:true
var b:Int =a
var c:Int =a
print(b===c)	//结果:false
print(b==c)		//结果:true





10、 [ is ] ------ 属于操作符

" is "

此操作符可以用来判断某个实例是否属于另一个实例



//name 是否是 String 类型
if (name is String){
    
     
    print(true)
}





11、 [ $ ] ------ 模板操作符

" $ "

此模板操作符可以输出一个变量值,相当于拼接字符串。



// 输出结果为 My name is GuYu
var name="GuYu"
print("My name is $name")





Kotlin 文件以 .kt 为后缀;其基础 思维导图如下图:
故屿


  • 推荐参考链接:

    https://www.cnblogs.com/shen-hua/category/1141903.html
    https://jetictors.github.io/categories/Kotlin/page/2/










Note:
欢迎点赞,留言,转载请在文章页面明显位置给出原文链接
知者,感谢您在茫茫人海中阅读了我的文章
没有个性 哪来的签名!
详情请关注点我
持续更新中



扫一扫 有惊喜!
© 2021 09 - Guyu.com | 【版权所有 侵权必究】

猜你喜欢

转载自blog.csdn.net/weixin_49770443/article/details/120451875