gpt4 book ai didi

rust - 检查 Option 是否为 Some(my_string)

转载 作者:行者123 更新时间:2023-12-03 11:27:20 26 4
gpt4 key购买 nike

我想知道检查 q: Option<String> 是否最惯用的方法是什么?我在 my_string: String 中拥有特定字符串的值.所以最直接的解决办法是:

if q.is_some() && q.unwrap() == my_string
我能想到的另一种:
if q.unwrap_or_default() == my_string
但这在 my_string 的极端情况下不起作用空虚。
另一个:
match q {
Some(s) if s == my_string => {
...
},
_ => {},
}
但这是非常冗长的。
有没有更简单的东西,比如一些聪明的 if let ?

最佳答案

直接检查:

if Some(my_string) == q {
}
或(保持 my_string 活着)
if Some(&my_string) == q.as_ref() {
}
会有(可能)一个 contains()在 future 的 Rust 版本中可以像这样使用
if q.contains(&my_string) {
}
它更灵活,因为它允许比较不同的数据类型(当它们实现 PartialEq 时)。见 https://github.com/rust-lang/rust/issues/62358

关于rust - 检查 Option<String> 是否为 Some(my_string),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64314351/

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