Kotlin 常用关键字说明

Kotlin 常用关键字符说明:

  1. ? 可空类型
    声明的变量是否可以为空
fun StrLen(s:String?):Int = s.length
  1. ? 安全调用运算符
    被引用对象是否为空
s?.length
  1. as 安全转换运算符
    尝试把值转换成给定的类型
object as? Person
  1. as? 安全转换运算符
    尝试把值转换成给定的类型,如果类型不合适就返回null
object as? Person
  1. !! 非空断言
    如果值为null就抛出NullPointerException空指针异常(Kotlin不推荐使用非空断言,通常我们会用?:来防止程序运行时报空指针异常而崩溃)
var s:String = s!! 
//如果s为null则会抛出空指针异常,并且异常会指向使用!!的这一行 
println(s)
//如果s为null则会抛出空指针异常
//使用断!!可以很方便的在抛出空指针异常的时候定位到异常的变量的位置 
//但是千万不要连续使用断言!!
student!!.person!!.name
//如果报空指针异常了则无法判断到底是student为空还是person为空,所以不要连续使用断言!!
  1. ?: Elvis运算符(null合并运算符)
    使用 ?: 运算符可以设置当检查结果为空的时候的返回值
fun foo(s:String?){ 
val t:String = s ?: "" 
//如果?:左边的值不为空返回左边的值,如果为空返回"" 
} 
  1. let函数和**?.**同时使用来处理可空表达式
    let函数只有左侧表达式不为空的时候才会调用
person?.let{ //内部的it一定是非空的 } 
//如果person为空就不会调用let函数
 //如果person不为空才会调用let函数,
//所以?.和let函数配合使用可以很方便的处理可空表达式 
person?.let { 
println(it.name) 
//输出name
}
  1. : 继承关键符
abstract class BaseFragment : Fragment() {
}
  1. fun 声明方法
override fun onDestroyView() {
        super.onDestroyView()
        unbinder?.unbind()
    }
  1. override 声明重写父类的方法
override fun onDestroyView() {
        super.onDestroyView()
        unbinder?.unbind()
    }
  1. var 是一个可变变量
 private var myAdapter: MyAdapter? = null
  1. val 是一个不可变变量
val finalValue = "我"
  1. inner 标记嵌套类,使其成为内部类:可访问外部类的成员
class AlbumFolderFragment : BaseFragment() {
    private var myAdapter: MyAdapter? = null
    
    override fun initView(mView: View?) {
        myAdapter = MyAdapter()
    }

    private inner class MyAdapter : BaseAdapter() {   
    }
}
  1. companion object 饰为伴生对象,伴生对象在类中只能存在一个,类似于java中的静态方法 Java 中使用类访问静态成员,静态方法。
ompanion object {
        @JvmStatic
        fun newInstance(): MyFragment {
            val myFragment = MyFragment()
            val args = Bundle()
            myFragment.arguments = args
            return albumFolderFragment
        }
    }
  1. Any 类型是 Kotlin 中 所有非空类型(ex: String, Int) 的根类型
    当我们需要和 Java 互操作的时候,Kotlin 把 Java 方法参数和返回类型中用到的 Object 类型看作 Any(更确切地说是当做「平台类型」)。当 Kotlin 函数中使用 Any 时,它会被编译成 Java 字节码中的 Object。

  2. MutableList 可变集合
    MutableSet 可变集合

  3. :: 支持函数作为参数,是 Kotlin 自带的特性,:: 的作用跟这个特性无关,不过它能够使函数调用更为简,如下

Plugin::class

参考文章:https://blog.csdn.net/baidu_31093133/article/details/81434181

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值