{ -6ren">
gpt4 book ai didi

rust - 如何模式匹配 Option<&Path>?

转载 作者:行者123 更新时间:2023-12-03 11:32:29 25 4
gpt4 key购买 nike

我的代码看起来像这样:

// my_path is of type "PathBuf"
match my_path.parent() {
Some(Path::new(".")) => {
// Do something.
},
_ => {
// Do something else.
}
}

但我收到以下编译器错误:

expected tuple struct or tuple variant, found associated function `Path::new`
for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html

我读了chapter 18 from the Rust book但我无法弄清楚如何使用 Path 修复我的特定情况和 PathBuf类型。

我怎样才能模式匹配 Option<&Path> (根据 docs 这是 parent 方法返回的内容)通过检查特定值,如 Path::new("1")

最佳答案

如果你想使用匹配,那么你可以使用match guard .简而言之,你不能使用 Some(Path::new(".")) 的原因是因为 Path::new(".") 不是pattern .

match my_path.parent() {
Some(p) if p == Path::new(".") => {
// Do something.
}
_ => {
// Do something else.
}
}

但是,在那种特殊情况下,您也可以只使用这样的 if 表达式:

if my_path.parent() == Some(Path::new(".")) {
// Do something.
} else {
// Do something else.
}

关于rust - 如何模式匹配 Option<&Path>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65426167/

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