Dart新手求助:解决变量阴影及代码运行异常问题
Dart代码修复方案
报错原因及修复点
- 类定义位置错误:Dart中类需定义在全局作用域,不能放在变量声明、
print等执行代码之后,否则会导致变量无法识别类类型,进而引发遮蔽错误。 - 变量拼写错误:
toString方法中使用了未定义的qtdePros,应改为类成员变量qtdPros。 - 执行逻辑位置错误:实例化对象、
print调用等执行代码必须放在main函数中,这是Dart程序的唯一入口。
修复后的完整代码
class Celular { final String cor; final int qtdPros; final double tamanho; final double peso; Celular(this.cor, this.qtdPros, this.peso, this.tamanho); @override String toString() { return 'cor $cor, Quantidade de Processadores $qtdPros'; } double valorDoCelular(double valor) { return valor * qtdPros; } } void main() { Celular cellphoneOfRafa = Celular('Azul', 5, 0.500, 5.7); Celular cellphoneOfZe = Celular('Preto', 6, 0.700, 7.7); print(cellphoneOfRafa.toString()); print(cellphoneOfZe.toString()); double resultado = cellphoneOfRafa.valorDoCelular(1000); print(resultado); }
关键修正说明
- 将
Celular类移至代码最上方,确保实例化对象时能正确识别类类型。 - 修正
toString方法中的变量拼写错误,保证能正确读取类成员属性。 - 所有执行逻辑放入
main函数,符合Dart程序的执行规范,避免全局执行代码引发的作用域冲突。
内容的提问来源于stack exchange,提问作者rrbertoldo
相关产品推荐
相关产品推荐

