nullable 문자열 변수 ab
이 있습니다. null을 할당 한 후 안전 호출 연산자를 통해 toUpperCase
으로 호출하면 kotlin이 오류를 발생시킵니다.kotlin 안전 통화에서 과부하 해결 모호성 오류가 발생했습니다
fun main(args: Array<String>){
var ab:String? = "hello"
ab = null
println(ab?.toUpperCase())
}
Error:(6, 16)
Overload resolution ambiguity:
@InlineOnly public inline fun Char.toUpperCase(): Char defined in kotlin.text
@InlineOnly public inline fun String.toUpperCase(): String defined in kotlin.text
문제는 여기에 무엇입니까?
"변수 ab 유형은 null입니다."null은 유형이 아닙니다! –
"ToUpperString() 확장 함수가 Char 및 String (Char? 또는 String이 아닌)에만 정의되어 있다는 점을 감안할 때 선택할 방법이 없습니다." 안전한 호출 연산자가 사용되므로 toUpperString()이 null 인 경우 ab에 호출되지 않습니다. –
"ab가 문자열을 포함 할 수있는 방법이 없습니다.)"null 할당 후에 ab = "hello2"를 할당하면 어떻게됩니까? 갑자기 문자열을 다시 포함하는 * 방법이 있습니다. –