Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 我们可以根据条件强制设置参数吗?_Flutter_Dart - Fatal编程技术网

Flutter 我们可以根据条件强制设置参数吗?

Flutter 我们可以根据条件强制设置参数吗?,flutter,dart,Flutter,Dart,正如我们所知,我们可以在Dart中使用三元运算符,如?和:,来控制流,如: String name = 1 == 1 ? "Jhon" : "Ryan"; 是否有条件强制设置参数 下面的代码不起作用,这里只是举个例子 class Person{ final String name; final int age; const Person({ this.name, name != null ? @required this.age : th

正如我们所知,我们可以在Dart中使用三元运算符,如
,来控制流,如:

String name  = 1 == 1 ? "Jhon" : "Ryan";
是否有条件强制设置参数

下面的代码不起作用,这里只是举个例子

class Person{
  final String name;
  final int age; 
  const Person({ this.name, name != null ? @required this.age : this.age});
}
不,你不能这样做

您可以使用
assert
s检查条件,但这将是运行时,而不是编译时

实现这一点的最佳方法确实是为不同的目的使用不同的命名构造函数


随着空安全特性的到来,这将是一场噩梦。不一定是针对编译器,而是针对必须理解它的程序员。

@required
这样的注释只能静态添加,而不取决于条件

在我看来,这似乎是@nvoigt提到的资产案例

班级人员{
最后的字符串名;
最终积分;
const Person({this.name,this.age}):断言(name!=null | | age!=null,“必须提供姓名或年龄”);
}

afaik您不能这样做,您可以使用的是
assert(…)
though我会为不同的条件创建不同的命名构造函数,并在每个条件中设置需求them@AlexRadzishevsky我也这么想,但我想知道有没有办法谢谢你的回答:D