在Kotlin中,處理可空值、引用或轉(zhuǎn)換這些值的慣用方法是什么?如果我有可空類型Xyz?,我希望引用它或?qū)⑵滢D(zhuǎn)換為非空類型。Xyz..在科特林,這樣做的習(xí)慣方式是什么?例如,此代碼出錯(cuò):val something: Xyz? = createPossiblyNullXyz()something.foo()
// Error: "Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Xyz?"但是,如果我首先檢查NULL是允許的,為什么?val something: Xyz? = createPossiblyNullXyz()if (something != null) {
something.foo() }如何更改或不將值視為null而不要求if好吧,假設(shè)我真的不知道null?例如,在這里,我從一個(gè)可以保證存在的映射中檢索一個(gè)值,并保證get()不是null..但我有個(gè)錯(cuò)誤:val map = mapOf("a" to 65,"b" to 66,"c" to 67)val something = map.get("a")something.toLong()
// Error: "Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Int?"方法get()認(rèn)為項(xiàng)目丟失并返回類型是可能的。Int?..因此,強(qiáng)制該值的類型不可為空的最佳方法是什么?
在Kotlin中,處理可空值、引用或轉(zhuǎn)換這些值的慣用方法是什么?
慕虎7371278
2019-07-15 15:09:06