gpt4 book ai didi

enums - 如何有条件地检查枚举是一种变体还是另一种变体?

转载 作者:行者123 更新时间:2023-11-29 08:21:49 26 4
gpt4 key购买 nike

我有一个有两个变体的枚举:

enum DatabaseType {
Memory,
RocksDB,
}

我需要什么才能在检查参数是 DatabaseType::Memory 还是 DatabaseType::RocksDB 的函数中创建条件 if?

fn initialize(datastore: DatabaseType) -> Result<V, E> {
if /* Memory */ {
//..........
} else if /* RocksDB */ {
//..........
}
}

最佳答案

首先看看免费的官方 Rust 书籍 The Rust Programming Language , 具体来说 the chapter on enums .


匹配

fn initialize(datastore: DatabaseType) {
match datastore {
DatabaseType::Memory => {
// ...
}
DatabaseType::RocksDB => {
// ...
}
}
}

如果让

fn initialize(datastore: DatabaseType) {
if let DatabaseType::Memory = datastore {
// ...
} else {
// ...
}
}

==

#[derive(PartialEq)]
enum DatabaseType {
Memory,
RocksDB,
}

fn initialize(datastore: DatabaseType) {
if DatabaseType::Memory == datastore {
// ...
} else {
// ...
}
}

匹配!

自 Rust 1.42.0 起可用

fn initialize(datastore: DatabaseType) {
if matches!(datastore, DatabaseType::Memory) {
// ...
} else {
// ...
}
}

另见:

关于enums - 如何有条件地检查枚举是一种变体还是另一种变体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51429501/

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