有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我在关注VoiceRealms(youtube)的颤振指南(fileio) 我在函数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) 个答案

  1. # 1 楼答案

    由于if之后的;,if语句与块({})分离,这意味着无论条件如何,它总是被执行。然而,代码在实际执行时并不是“死”的

    What does [...] dead code [/unreachable code] in [a] programming language [mean]?

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

     // 1
     print("alive");
     return;
     print("dead");
    
     // 2
     if(false) print("dead");
    
  2. # 2 楼答案

    这是一段永远不会执行的代码,因为它毫无意义

    例如:

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

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

    if (something);
    

    请注意;,这意味着在if中没有什么可执行的

  3. # 3 楼答案

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

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