Directorio de artículos
1. Símbolos compuestos
1. === !== (tercera clase)
== 是比较值是否相等
=== 是比较对象的地址是否相等
2. !! (afirmar operador no nulo)
!! 比如 var s = foo!! 如果foo不为null 就取出值,如果foo为null 就抛出异常
3. ? (si el objeto actual puede ser nulo)
4. ?. (llamador de seguridad)
código:
if (foo != null) {
return foo.bar()
} else {
return null
}
5. ?: (similar al juicio de Java)
6. es
val str = "helloWorld"
System.out.println("========")
println(str is String)//输出:true
System.out.println("========")
Información de salida:
I/System.out: ========
true
========
7、!es
val x = 10
System.out.println("========")
println(x !is Int)//输出:false
System.out.println("========")
Información de salida:
I/System.out: ========
false
========
8. como (convertidor de tipo inseguro) , si la conversión es exitosa, la conversión será exitosa, y si la conversión falla, se informará un error
private var view1: View? = null
private var view2: View? = null
private var view3: View? = null
private var mListView1: ListView? = null
private var mListView2: ListView? = null
private var mListView3: ListView? = null
...
view1 = inflater.inflate(R.layout.pager_number, null)
view2 = inflater.inflate(R.layout.pager_number, null)
view3 = inflater.inflate(R.layout.pager_number, null)
//as转换成功就转换成功
mListView1 = view1!!.findViewById<View>(R.id.listview) as ListView
mListView2 = view2!!.findViewById<View>(R.id.listview) as ListView
mListView3 = view3!!.findViewById<View>(R.id.listview) as ListView
9. as? (tipo convertidor de seguridad) , as?es más seguro que as, si la conversión es exitosa, la conversión será exitosa, y si la conversión falla, devolverá nulo
1. La salida no es nula
var name:String = "哈哈哈"
Log.e("TAG", (name as? String).toString())
Información de salida:
2. Salida nula
E/TAG: 哈哈哈
var name:String = "哈哈哈"
Log.e("TAG", (name as? Int).toString())
Información de salida:
E/TAG: null