我正在尝试 Kotlin 并从编译器收到消息:
Smart cast to kotlin.String
代码:
/*"mTripStatus" is a nullable String*/
var html :String = HTML
html = if (mTripStatus!=null) html.replace("TRIP_STATUS_VALUE", mTripStatus) else html
这是什么意思?
我正在尝试 Kotlin 并从编译器收到消息:
Smart cast to kotlin.String
代码:
/*"mTripStatus" is a nullable String*/
var html :String = HTML
html = if (mTripStatus!=null) html.replace("TRIP_STATUS_VALUE", mTripStatus) else html
这是什么意思?
编译器知道如果条件满足mTripStatus
则不可能,因此它执行从to的智能转换。这就是允许编译的原因。null
if
String?
String
html.replace("TRIP_STATUS_VALUE", mTripStatus)
但请注意,这不应被解释为编译器警告。这是惯用的 Kotlin 代码。
这段代码:
var html :String = HTML
html = if (mTripStatus!=null) html.replace("TRIP_STATUS_VALUE", mTripStatus) else html
可:
var html: String = html
mTripStatus?.let { html = html.replace("TRIP_STATUS_VALUE", mTripStatus) }