You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart学习使用if判断结果报错「if不能用作标识符」问题求助

报错产生原因
  • 你编写的数据库实例化、if结果判断等可执行代码,没有放置在合法的可执行作用域内(例如Dart程序入口main()函数、其他普通函数/类方法内部),而是直接写在了Dart文件的顶层作用域、或类内部的成员声明区域。
  • Dart不允许在非执行区域直接编写逻辑代码,此时编译器不会将if识别为条件判断语句,而是将其判定为你尝试声明的标识符,而if是Dart内置关键字,不允许作为标识符使用,因此抛出该错误。
解决方法

将所有可执行逻辑封装到函数内部即可,通常可以优先放到Dart程序的入口main()函数中,修正后的完整代码如下:

class DataBase {
  String username = "asd";
  int password = 1234;
  bool connect() {
    if (username == "asd" && password == 1234) {
      return true;
    } else {
      return false;
    }
  }
}

// 所有业务逻辑放在main函数内执行
void main() {
  DataBase db =  DataBase();
  bool result = db.connect();
  if (result){
    print("It connected");
  }else{
    print("It doesn't match");
  }
}

补充说明:你原有代码中if判断的语法本身没有问题,仅因代码放置位置错误触发报错。


内容的提问来源于stack exchange,提问作者Wollep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:36:00