33 可空值
类型后的 ? 允许该类型的值为 null;没有 ? 的类型不允许。
norm
String? label(Boolean present) {
if present {
return "ready"
}
return null
}
main() {
String? present = label(present: true)
String? missing = label(present: false)
printLine(present == null)
printLine(missing == null)
}预期输出:
text
false
truelabel 可以返回字符串或缺失值,因此结果类型是 String?。两个绑定都保持可空类型,即使其中一次调用当前返回字符串;需要非空字符串时先检查或提供回退值。
动手试试:让 false 分支也返回字符串,比较两次空值检查。
详细规则:参考。