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

Dart代码运行时print输出正常,但第4行返回null问题求助

问题分析与解决

你的代码核心问题是setter方法没有给私有变量_armor赋值——虽然设置ferrari.armor = 85时,条件判断通过并打印了true,但类内部的_armor始终是初始的null,所以调用get armor时返回的自然是null。

修复后的代码如下:

main() {
    var ferrari = Car();
    ferrari.armor = 85;
    print(ferrari.armor); // 现在会输出85
}

class Car {
    int? _armor;

    int? get armor {
        return _armor;
    }

    set armor(int? armor) {
        if (armor != null && armor < 100) {
            _armor = armor; // 新增赋值逻辑,更新私有变量
            print(true);
        } else {
            _armor = null; // 不符合条件时可选择重置为null,或按需处理
            print(false);
        }
    }
}

简单说明:

  • Setter方法的核心作用是修改类的内部状态,你之前只做了条件判断和打印操作,遗漏了对_armor的赋值步骤。
  • 加上_armor = armor;后,传入的有效值会被保存到私有变量中,getter就能正确返回对应的值了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:25:21