编程语言(尤其是dart)中的死代码是什么意思?

时间:2019-01-17 14:54:06

标签: java dart flutter

我一直在遵循排骨的颤振指南(fileio)(youtube) 而且我在函数readfile上遇到了这个问题,编辑器说这是死代码,但是我不知道这是什么意思

我试图在网上搜索

String readFile(String file) {
  try {
    File f = new File(file);
    return f.readAsStringSync();
  }
  catch(e) {
    print(e.toString());
  }
}


main(List<String> arguments) {
  String path = 'C:/Users/danis/Desktop';
  String txtFile = 'C:/Users/danis/Desktop/test.txt';
  list(path);

  if(readFile(txtFile, 'Hello World\n', FileMode.APPEND));{
    print(readFile(txtFile));
  }
}

3 个答案:

答案 0 :(得分:1)

DartAnalyzer可以静态推断出在任何情况下都不会执行该代码时,会警告死代码。

int fun() {
  return 5;
  print('x'); // dead code
}

int fun() {
  if(true) {
    print('x'); 
  } else {
    print('y'); // dead code
  } 
}

答案 1 :(得分:1)

这是一些永远不会执行的代码,因为它没有意义。

例如:

if (false) {
  print("Hello World");
}

在您的情况下,您有这样的警告,因为您写道:

if (something);

请注意;,这意味着if内无任何执行。

答案 2 :(得分:1)

由于if语句从块(;)中分离出来后,{}的存在,这意味着无论条件如何,该语句始终被执行。但是,该代码并不是实际执行的“死胡同”。

  

[a]编程语言[平均值]中的[...]无效代码[/无法访问的代码]是什么?

死代码是指无用的代码,因为它永远不会执行。如果未在任何地方调用该函数,则该函数将失效;如果在返回之后,这些语句可能会失效:

 // 1
 print("alive");
 return;
 print("dead");

 // 2
 if(false) print("dead");