記事ディレクトリ
1.複合記号
1. ===!==(サードクラス)
== 是比较值是否相等
=== 是比较对象的地址是否相等
2. !!(null以外の演算子をアサート)
!! 比如 var s = foo!! 如果foo不为null 就取出值,如果foo为null 就抛出异常
3. ?(現在のオブジェクトがnullになる可能性があるかどうか)
4。?。(安全呼び出し元)
コード:
if (foo != null) {
return foo.bar()
} else {
return null
}
5. ?:( Javaの判断に似ています)
6。は
val str = "helloWorld"
System.out.println("========")
println(str is String)//输出:true
System.out.println("========")
出力情報:
I/System.out: ========
true
========
7 、!です
val x = 10
System.out.println("========")
println(x !is Int)//输出:false
System.out.println("========")
出力情報:
I/System.out: ========
false
========
8. (type-unsafe converter)として、変換が成功した場合は変換が成功し、変換が失敗した場合はエラーが報告されます
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?(型安全性コンバーター)、as?はasよりも安全です。変換が成功した場合は変換が成功し、変換が失敗した場合はnull1を返します
。出力はnullではありません。
var name:String = "哈哈哈"
Log.e("TAG", (name as? String).toString())
出力情報:
2.nullを出力します
E/TAG: 哈哈哈
var name:String = "哈哈哈"
Log.e("TAG", (name as? Int).toString())
出力情報:
E/TAG: null