Avatar ·

Kotlin中的!!(双感叹号)运算符是做什么的,什么时候应该使用它?

大家好!我刚从Java开始学习Kotlin,一直搞不懂`!!`运算符。Kotlin以null-安全著称,但这个双感叹号,据我理解,反而可能引发NullPointerException。 我正在写一个简单的笔记应用。我有一个函数,根据ID在数据库中查找用户并返回其姓名。如果找不到用户,则返回null。以下是示例代码: ```kotlin fun getUserName(userId: Int): String? { // 如果找不到用户,返回null return database.findUser(userId)?.name } ``` 然后我调用这个函数,想把姓名显示在TextView中: ```kotlin val name = getUserName(123) textView.text = name // 错误:类型不匹配。需要:String,找到:String? ``` 编译器报错,说name可能为null。我在网上查到可以使用`!!`: ```kotlin textView.text = name!! ``` 但我不明白:那所有这些null-