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,如果这是一个正常的函数,我会这样做 void test([dynamic arg=_noArgs]) { if(arg==_noArg); // No argument was passed else if(arg==null); // null was explicitly passed else {} // handle the arg } const _noArgs = const Object(); // basically just create an instance

如果这是一个正常的函数,我会这样做

void test([dynamic arg=_noArgs])
{
  if(arg==_noArg); // No argument was passed
  else if(arg==null); // null was explicitly passed
  else {} // handle the arg
}

const _noArgs = const Object(); // basically just create an instance of that type
但是对于一个属于泛型类并且需要一个所传递类型的参数的函数,如何实现同样的功能呢

void test([/*covariant*/ T arg=[...]])
{
  //[...];
}
注意:函数的默认参数必须是常量

目前的解决办法:

void test([/*covariant*/ T arg=[...]])
{
  if(arg==null); // Argument was not passed (assumed)
  else{} // Handle the arg
}

void testNull()
{
  // Do whatever was supposed to be done if null was explicitly passed
}
有没有更好的方法可以直接用相同的函数来实现?(对不起,我太喜欢Dart的语法简洁性了)