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

Dart新手求助:解决变量阴影及代码运行异常问题

Dart代码修复方案

报错原因及修复点

  1. 类定义位置错误:Dart中类需定义在全局作用域,不能放在变量声明、print等执行代码之后,否则会导致变量无法识别类类型,进而引发遮蔽错误。
  2. 变量拼写错误:toString方法中使用了未定义的qtdePros,应改为类成员变量qtdPros。
  3. 执行逻辑位置错误:实例化对象、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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:41:19