包含引用的可能变体的枚举数组[重复]

问题描述 投票:0回答:1

我尝试编写战列舰的纸质游戏,其中战场是枚举阵列。我找不到初始化数组的方法。

enum Tile {
    Water,
    Debris,
    Ship(Rc<Ship>),
}

fn main() {
    let mut a = [[Tile::Water; 10]; 10]; //Tile::Water doesn't implement Copy (the compiler is dumb)
    let mut b: [[Tile; 10]; 10];
    for i in 1..10 {
        for j in 1..10 {
            b[i][j] = Tile::Water;
        }
    } //use of possibly uninitialized b (I'm trying to initialize it)
}

如何才能做到这一点?我不是在寻找另一种游戏解决方案,这只是一个例子。

arrays enums rust
1个回答
-1
投票

试试这个:

enum Tile {
    Water,
    Debris,
    Ship(Rc<Ship>),
}

impl Default for Tile {
    fn default() -> Self {
        Tile::Water
    }
}

fn main() {
    let mut b: [[Tile; 10]; 10] = Default::default();
}
© www.soinside.com 2019 - 2024. All rights reserved.