gpt4 book ai didi

Dart 多个构造函数

转载 作者:IT老高 更新时间:2023-10-28 13:48:41 26 4
gpt4 key购买 nike

dart中真的不能为一个类创建多个构造函数吗?

在我的 Player 类中,如果我有这个构造函数

Player(String name, int color) {
this._color = color;
this._name = name;
}

然后我尝试添加这个构造函数:

Player(Player another) {
this._color = another.getColor();
this._name = another.getName();
}

我收到以下错误:

The default constructor is already defined.

我不是通过创建一个带有一堆非必需参数的构造函数来寻找解决方法。

有什么好办法解决这个问题吗?

最佳答案

您只能有一个未命名 constructor ,但您可以拥有任意数量的附加 named constructors

class Player {
Player(String name, int color) {
this._color = color;
this._name = name;
}

Player.fromPlayer(Player another) {
this._color = another.getColor();
this._name = another.getName();
}
}

new Player.fromPlayer(playerOne);

这个构造函数

  Player(String name, int color) {
this._color = color;
this._name = name;
}

可以简化为

  Player(this._name, this._color);

命名构造函数也可以是私有(private)的,名称以 _

开头
class Player {
Player._(this._name, this._color);

Player._foo();
}

具有 final 字段初始值设定项列表的构造函数是必需的:

class Player {
final String name;
final String color;

Player(this.name, this.color);

Player.fromPlayer(Player another) :
color = another.color,
name = another.name;
}

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

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