上QQ阅读APP看书,第一时间看更新
3.1 解决语法错误
我们以一个简单的问题或经常出现的语法错误开始。什么是语法错误?语法错误表示编写的代码无法工作。例如:调用某个对象不存在的方法、忘记添加import引入等。
在news_manager.dart文件中注释掉import这行代码,代码如下:
// import 'package:flutter/material.dart'; //注释引入的包
IDE中报了语法错误,如图3.1所示。
图3.1 错误提示信息
IDE能检测大多数的语法错误,把鼠标悬停在红线处,被告知“没有定义StatefulWidget,方法也没有在superclass中定义”。Dart语言中任何值都是对象,数字是对象,列表是对象,它们都继承于一个基类Superclass,即使自己定义的类继承了其他的类,它的上级的类终将继承这个基类,这就是这里报错的原因。
news_manager.dart很多错都是报“没有定义方法”。这意味着我们没有定义类或者忘记引入类,所以语法错误通常是逻辑上出的问题。语法错误不仅仅是漏掉import。如果把news_manager.dart中的属性_news前面的下画线去掉,就会出现如图3.2所示的错误提示信息。
图3.2 属性的错误提示信息
错误提示没有定义_news,所以出现这些情况的时候,首先要做的是检查代码。代码中是否添加了这个属性?忘记引入什么了吗?
还有一些错误是忘记编写了一些内容,例如分号,这是典型的语法错误。还有一种语法错误是赋值类型与属性类型不符,例如需要传入的是浮点型数据,但是如果传入了整型数据,会有错误提示“整型不能赋值给浮点型”。
IDE可以提供给我们很多警告或者是错误信息,如果阅读这些错误信息就可以很好地解决语法错误。