Mor*_*rem 0 enums conditional rust
我有一个包含两个变体的枚举:
enum DatabaseType {
Memory,
RocksDB,
}
Run Code Online (Sandbox Code Playgroud)
如果在检查参数是否为DatabaseType::Memory或的函数内部进行条件化,我需要什么DatabaseType::RocksDB?
fn initialize(datastore: DatabaseType) -> Result<V, E> {
if /* Memory */ {
//..........
} else if /* RocksDB */ {
//..........
}
}
Run Code Online (Sandbox Code Playgroud)
She*_*ter 12
首先,回过头来重读一本免费的官方Rust书:Rust编程语言,特别是关于枚举的章节.
matchfn initialize(datastore: DatabaseType) {
match datastore {
DatabaseType::Memory => {
// ...
}
DatabaseType::RocksDB => {
// ...
}
}
}
Run Code Online (Sandbox Code Playgroud)
if letfn initialize(datastore: DatabaseType) {
if let DatabaseType::Memory = datastore {
// ...
} else {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
==#[derive(PartialEq)]
enum DatabaseType {
Memory,
RocksDB,
}
fn initialize(datastore: DatabaseType) {
if DatabaseType::Memory == datastore {
// ...
} else {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
也可以看看: