gpt4 book ai didi

dart - Dart 中的构造函数

转载 作者:IT老高 更新时间:2023-10-28 12:32:16 27 4
gpt4 key购买 nike

我的类(class)中有这个构造函数。现在当它是这样的时候,我得到了

The type parameter icon is annotated with @required
but only named parameters without default value can be annotated with it.

-

const Category(
@required this.name,
@required this.icon,
@required this.color
) : assert(name != null),
assert(icon != null),
assert(color != null);

当这样调用构造函数时:

        Category(name: _categoryName, icon: _categoryIcon, color: _categoryColor),

这是一个错误。

当我用 {} 包围我的构造函数参数时,所有这些都消失了。

这是什么意思?

最佳答案

{} 缺少使它们成为命名参数

const Category({
@required this.name,
@required this.icon,
@required this.color
}) : assert(name != null),
assert(icon != null),
assert(color != null);

或者只是删除 @required

如果没有 {},它们是无论如何都需要的位置参数。

Category('foo', someIcon, Colors.white)

Category(name: 'foo', icon: someIcon, color: Colors.white)

[] 使它们成为可选的位置参数。

位置(非可选)需要先声明,可选参数在最后。

可选的位置参数和可选的命名参数不能一起使用。

可选参数(位置和命名)可以有默认值

this.name = 'foo'

默认值需要是编译时常量。

关于dart - Dart 中的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50428374/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com