class Quote {
String text;
String author;
Quote({ this.text, this.author });
}
在 vscode 中,如果没有 required,它会显示错误并强制我在构造函数中在 this.text 之前添加 required
class Quote {
String text;
String author;
Quote({ required this.text, required this.author });
}
这就是副驾驶建议我这样做的答案?但我很困惑为什么我需要在 this.text 之前添加 required ???
如果您希望在调用此类时必须给出值,则应将这些变量标记为必需,为此,您可以直接创建一个变量并需要它,如下所示。
class Quote {
String text;
String author;
Quote({required this.Text, required this.Author });
}
但是如果您知道在调用此类时不需要传递该值,则可以将其设置为可为空,在使其可为空的同时,您可以为其指定一个默认值,或者只是使用
?
将其标记为可为空
class Quote {
String? text;
String? author = 'xyz';
Quote({this.Text, this. Author });
}
现在您可以在传递或不传递任何值的情况下调用此类,但您应该记住,由于
text
变量可以为 null 并且它也没有任何默认值,因此如果您没有将值传递给text 并尝试使用它的值,它会抛出错误,要克服这个问题,您可以使用空检查运算符??
Quote myQuote = Quote();
print(myQuote.text);
现在,由于我既没有将值传递给文本,也没有任何默认值,所以它会导致错误,要克服这个问题,你可以这样做,
print(myQuote.text ?? 'Text is empty');
现在,如果文本值不为空,则将打印
myQuote.text
值,否则将打印 'Text is empty'
。