首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

规范

2024-12-18 来源:化拓教育网

is 使用
如果context参数但是要用到activity。比如

actvity.overridePendingTransition

如果使用(报红)

context.overridePendingTransition

处理(正确使用)

if (context is Activity) {
  context.overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
}

使用可空值及null检测
某个变量值可以为null时,必须在声明处的类型后添加 ? 该引用可为空

var name: String? = null

? 加在变量名后,系统在任何情况不会报它的空指针异常。

textView?.text = "hello"
//类型后面加?表示可为空
var age: String? = "23"
//age为空返回-1
val ages2 = age?.toInt() ?: -1

!!加在变量名后,如果对象为null,那么系统一定会报异常

textView!!.text="hello"

定义函数
Unit:返回无意义的值,可以省略

fun printSum(a: Int, b: Int): Unit {
    println("sum of $a and $b is ${a + b}")
}

invoke
{}符号, 是lambda表达式的符号

// 一个参数
var callback: ((str: String) -> Unit)? = null
callback = { println(it)}
// 判断并使用
callback?.invoke("hello")
//两个参数
var callback2: ((name: String, age: Int) -> Unit)? = null
callback2 = { hello: String, world: Int -> println("$hello's age is $world") }
callback2?.invoke("Tom", 22)
//类型可以推断
callback3 = { num1, num2 ->
    var res:Int = num1 + num2
    res.toString()
}

println(callback3?.invoke(1, 2))

==和===
==:比较值
===:两个对象的地址是否相等

val a: Int = 10
val b: Int = a
val c: Int = a
println(b == c)// true
println(b === c)// false
显示全文