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
相关产品推荐
相关产品推荐

