空值感知访问
本课属于 Coddy Dart 学习旅程的“基础知识”单元。第 29 课,共 94 课。
空值感知访问运算符(?.)可以安全地访问可能为空的对象的属性,避免运行时错误。
void main() {
String? name = 'Dart';
int? length = name?.length;
print('Name: $name');
print('Length: $length');
}遇到 null 值时,它会返回 null,而不是崩溃:
void main() {
String? name = null;
int? length = name?.length;
print('Name: $name');
print('Length: $length');
}挑战
简单创建一个 Dart 程序,演示游戏角色中空安全访问运算符(?.)的用法:
- 创建一个名为
playerName的可空 String 变量,并将它设为 null - 创建一个名为
playerScore的可空 int 变量,并将它设为 100 - 使用空安全访问运算符(
?.)获取 playerName 的长度,并将结果存入名为nameLength的变量 - 打印以下消息:
Player name length: X(其中 X 是 nameLength 的值) - 将
playerName更新为 "Champion" - 再次使用空安全访问运算符获取更新后的长度,并将结果存入
nameLength - 打印更新后的消息:
Player name length: X(其中 X 是新值) - 按以下格式打印玩家的分数:
Player score: 100
亲手试试
void main() {
// 在这里声明你的可空变量
String? playerName = _;
int? playerScore = _;
// 使用 ?. 运算符获取 playerName 的长度
int? nameLength = playerName_.length;
// 打印初始名字的长度
print("Player name length: ${nameLength}");
// 更新 playerName
playerName = _;
// 使用 ?. 运算符获取更新后的长度
nameLength = playerName_.length;
// 打印更新后名字的长度
print("Player name length: ${nameLength}");
// 打印玩家的分数
print("Player score: ${playerScore}");
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Dart 在线编译器