Flutter Dart中是否可能只需要两个参数中的一个?
我知道我可以使用Flutter Dart中是否可能只需要两个参数中的一个?,flutter,dart,constructor,Flutter,Dart,Constructor,我知道我可以使用@required要求一个参数,如下所示: class Foo{ String firstParam; String secondParam; Foo({@required this.firstParam, this.secondParam}); } 但是,我不知道如何只需要这两个参数中的一个而不同时需要这两个参数。使用断言,我有一些看起来像我想要的东西: class Foo{ String firstParam; String secondParam;
@required
要求一个参数,如下所示:
class Foo{
String firstParam;
String secondParam;
Foo({@required this.firstParam, this.secondParam});
}
但是,我不知道如何只需要这两个参数中的一个而不同时需要这两个参数。使用断言
,我有一些看起来像我想要的东西:
class Foo{
String firstParam;
String secondParam;
Foo({this.firstParam, this.secondParam}): assert(this.firstParam != null || this.secondParam!= null);
}
但是它在VS代码中不会警告我,并且在发布模式中不会使用断言
在Dart中有什么方法可以做到这一点吗?我认为这是不可能的,尽管您可以将这两个参数都设置为必需的,并在需要时显式设置为null我认为这是不可能的,尽管您可以将这两个参数都设置为必需参数,并在需要时显式设置为null,但请使用此选项并为您的断言提供一条消息:
class Foo {
String firstParam;
String secondParam;
Foo({this.firstParam, this.secondParam})
: assert(
(firstParam != null || secondParam != null),
'One of the parameters must be provided',
);
}
警告:如果未提供任何参数:
使用此选项并为您的断言提供一条消息:
class Foo {
String firstParam;
String secondParam;
Foo({this.firstParam, this.secondParam})
: assert(
(firstParam != null || secondParam != null),
'One of the parameters must be provided',
);
}
警告:如果未提供任何参数:
这不完全是我想要的,因为它没有在发布模式中使用(我已经使用了断言)。如果其中一个参数没有提供,我也不想编译我的应用程序。在这里,我可以编译,但如果我没有提供一个参数,它将抛出一个异常。这不是我想要的,因为它没有在发布模式中使用(我已经使用断言)。如果其中一个参数没有提供,我也不想编译我的应用程序。在这里,我可以编译,但如果我没有提供一个参数,它将抛出一个异常。