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
Dart 分析仪isn';t正在Visual Studio代码中工作。。。还是这样?_Dart_Visual Studio Code_Dart Analyzer - Fatal编程技术网

Dart 分析仪isn';t正在Visual Studio代码中工作。。。还是这样?

Dart 分析仪isn';t正在Visual Studio代码中工作。。。还是这样?,dart,visual-studio-code,dart-analyzer,Dart,Visual Studio Code,Dart Analyzer,在Visual Studio代码中,当调用Dart函数时省略@required参数时,似乎不会出现错误。我必须做些什么才能让分析仪工作吗?或者错误被标记,而我只是看不到它们?任何帮助都将不胜感激 import 'package:meta/meta.dart'; void sayHello({@required String to, bool inEnglish}){ if(inEnglish == null || inEnglish){ print("Hello, $to");

在Visual Studio代码中,当调用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
}

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


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

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


@required
注释实际上没有任何作用。这只是由颤振添加的一种变通方法,当您没有传递标记有颤振的参数时,分析器可以使用颤振添加警告。但这并不能阻止您省略“required”参数,这样做的代码仍然可以很好地编译和运行。

值得注意的是,在不久的将来,当Dart移动到默认类型系统中不可为null时,通过使参数的类型不可为Null,可以获得所需的命名参数。@BenKonyi不一定。它可能只需要一个默认值。在这一点上,它在技术上仍然是必需的,但已经提供了一个默认值,因此它将无法在一开始就将其标记为必需的。但是,如果您将某项标记为必需并提供默认值,我不确定分析器当前将如何运行。@BenKonyi根据该逻辑,所有参数都是必需的,因为即使是可选参数也隐式地指定了默认值
null
。带有显式默认值的可选参数仍然是可选的。非Null类型的可选参数可能只需要显式的默认值。无论如何,现在判断不可为null的类型在可选参数中的行为还为时过早。Dart可能只是为了一个非null的隐式默认值,特别是对于内置值类型,从它的屁股里掏出了一些东西。我现在正在移植一些SDK代码,看起来如果你有一个不可为null的命名参数而没有默认值,分析器实际上会抱怨。例如:
error•参数“details”因其类型而不能具有“null”值,因此它必须是必需的参数或具有默认值。•sdk_nnbd/lib/vmservice/vmservice.dart:95:58•在这一点上,命名参数实际上是必需的。值得注意的是,在不久的将来,当dart移动到默认类型的非空系统时,通过使参数的类型不可为Null,可以获得所需的命名参数。@BenKonyi不一定。它可能只需要一个默认值。在这一点上,它在技术上仍然是必需的,但已经提供了一个默认值,因此它将无法在一开始就将其标记为必需的。但是,如果您将某项标记为必需并提供默认值,我不确定分析器当前将如何运行。@BenKonyi根据该逻辑,所有参数都是必需的,因为即使是可选参数也隐式地指定了默认值
null
。带有显式默认值的可选参数仍然是可选的。非Null类型的可选参数可能只需要显式的默认值。无论如何,现在判断不可为null的类型在可选参数中的行为还为时过早。Dart可能只是为了一个非null的隐式默认值,特别是对于内置值类型,从它的屁股里掏出了一些东西。我现在正在移植一些SDK代码,看起来如果你有一个不可为null的命名参数而没有默认值,分析器实际上会抱怨。例如:
error•参数“details”因其类型而不能具有“null”值,因此它必须是必需的参数或具有默认值。•sdk\u nnbd/lib/vmservice/vmservice.dart:95:58•缺少\u参数的\u默认值\u
此时,命名参数实际上是必需的。