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的语法简洁性了)