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,我想要的是像@required这样的注释,但我想根据参数类型执行一些逻辑,并像@required那样显示使用警告。 (如果类型为ParamTuple则显示警告) 如果类型是ParamTuple,我想警告用户,但在其他情况下,我不想警告 在下面的代码中,应实现逻辑 const TupleRequired tupleRequired = TupleRequired(); class TupleRequired { const TupleRequired(); } 另外,我认为我应该添加一个分

我想要的是像
@required
这样的注释,但我想根据参数类型执行一些逻辑,并像
@required
那样显示使用警告。 (如果类型为
ParamTuple
则显示警告)

如果类型是ParamTuple,我想警告用户,但在其他情况下,我不想警告

在下面的代码中,应实现逻辑

const TupleRequired tupleRequired = TupleRequired();

class TupleRequired {
  const TupleRequired();
}
另外,我认为我应该添加一个
分析\u options.yaml
,为我的
@tupleRequired
显示类似
@required
的警告

我想要的示例

class Example {
  // Tuple0 extends NullTuple 
  void nullParam({@tupleRequired Tuple0 param}) {}

  // Tuple1 extends ParamTuple  
  void withParam({@tupleRequired Tuple1 param}) {}
}
因此,当我们想要使用这些方法时,我希望看到以下自定义警告:

  • nullParam
    :如果我将其置为空,则不显示任何内容,但如果我传递一个参数,则表明该参数是多余的,将被忽略
  • withParam
    :如果我将其置为空,则显示传递参数的警告,如果传递参数,则不显示任何内容

  • 在构造函数中,您可以使用如下断言:

    class TupleRequired {
      final Tuple touple;
      TupleRequired(this.touple): assert(touple is! ParamTuple);
    
    }
    
    在dart中是/是!检查对象是否为特定类型,例如

    var s = 'this is a string type';
    print(s is String); // prints true because s is string
    print(s is! int); // prints true because s is not an int
    

    我不确定我是否理解你的要求。你能举一个你想要的代码和你想要收到的信息的例子吗?我添加了一个例子,希望它能帮助我澄清我想要的东西,
    var s = 'this is a string type';
    print(s is String); // prints true because s is string
    print(s is! int); // prints true because s is not an int