0

在 Visual Studio Code 中,在调用 Dart 函数时省略 @required 参数似乎不会出现错误。我必须做些什么才能让分析仪工作吗?还是错误被标记而我只是没有看到它们?任何帮助,将不胜感激 ...

import 'package:meta/meta.dart';

void sayHello({@required String to, bool inEnglish}){

  if(inEnglish == null || inEnglish){
    print("Hello, $to");
  } else {
    print("Bonjour, $to");
  }
}

main(){
 sayHello(inEnglish: true); // output: Hello, null, no complaints about **to** missing
}
4

1 回答 1

2

Dart 语言具有必需的位置参数、可选的位置参数和可选的命名参数。遗憾的是,Dart 不支持必需的命名参数。

注释实际上并@required没有做任何事情。这只是 Flutter 添加的一种解决方法,当您不传递标有它的参数时,分析器可以使用它来添加警告。但它不会阻止您省略“必需”参数,这样做的代码仍然可以很好地编译和运行。

于 2020-01-13T01:44:53.003 回答