如何使用枚举作为数组元素?
How do I use an enum as array element?
我对这段代码无法编译感到有点惊讶。作为 Rust 的新手,我当然可能犯了一些愚蠢的错误...
mod board {
enum Square {
Empty,
Black,
White
}
fn init () -> [Square;9] {
[Square::Empty; 9]
}
}
main.rs:10:9: 10:27 error: the trait core::marker::Copy
is not implemented for
the type board::Square
[E0277]
main.rs:10 [Square::Empty; 9]
或者是语言的非特性不允许枚举作为数组元素类型?
数组初始化语法[T; N]
要求T
实现Copy
,以便它可以将提供的值复制到数组中的每个位置。
这个有效:
mod board {
#[derive(Copy, Clone)]
enum Square {
Empty,
Black,
White,
}
fn init() -> [Square; 9] {
[Square::Empty; 9]
}
}
我对这段代码无法编译感到有点惊讶。作为 Rust 的新手,我当然可能犯了一些愚蠢的错误...
mod board {
enum Square {
Empty,
Black,
White
}
fn init () -> [Square;9] {
[Square::Empty; 9]
}
}
main.rs:10:9: 10:27 error: the trait
core::marker::Copy
is not implemented for the typeboard::Square
[E0277] main.rs:10 [Square::Empty; 9]
或者是语言的非特性不允许枚举作为数组元素类型?
数组初始化语法[T; N]
要求T
实现Copy
,以便它可以将提供的值复制到数组中的每个位置。
这个有效:
mod board {
#[derive(Copy, Clone)]
enum Square {
Empty,
Black,
White,
}
fn init() -> [Square; 9] {
[Square::Empty; 9]
}
}