参数类型 'num?'不能分配给参数类型 'num'.dart(argument_type_not_assignable)

Posted

技术标签:

【中文标题】参数类型 \'num?\'不能分配给参数类型 \'num\'.dart(argument_type_not_assignable)【英文标题】:The argument type 'num?' can't be assigned to the parameter type 'num'.dart(argument_type_not_assignable)参数类型 'num?'不能分配给参数类型 'num'.dart(argument_type_not_assignable) 【发布时间】:2021-09-15 08:56:25 【问题描述】:

enter image description here

我正在使用财务创建一个贷款计算器:来自 pub.dev/packages/finance 的 ^0.1.0 包。在计算支付的总利息时,我在 c['ipmt'] 处遇到错误。错误是参数类型'num?'不能分配给参数类型 'num'.dart(argument_type_not_assignable)。

请帮忙。

【问题讨论】:

【参考方案1】:

您的编译器不知道给定的映射包含一个值。作为程序员,你有理由相信,因为你添加了它,但是编译器不够聪明。

这里的教训是当您确定数据是什么样子时创建一个实际类型。与其属性的映射依赖于您每次访问它们时正确键入它们,不如创建一个具有这些属性的类。那么你的编译器就会知道,此时程序中,这个属性不能为空。

【讨论】:

以上是关于参数类型 'num?'不能分配给参数类型 'num'.dart(argument_type_not_assignable)的主要内容,如果未能解决你的问题,请参考以下文章

获取错误“未知”类型的参数不能分配给“错误”类型的参数 |空值'

参数类型“对象?”不能分配给参数类型'String'最新版本

参数类型“Type”不能分配给参数类型“FirebaseUser”

参数类型“字符串”不能分配给参数类型“目录”

参数类型“字符串”不能分配给参数类型“对象?函数(对象?,对象?)?

错误:参数类型“上下文”不能分配给参数类型“BuildContext”