【发布时间】:2020-02-04 17:23:57
【问题描述】:
在 Rust 中比较字符串长度的惯用方法是什么,考虑到字符串长度相等的情况?
lifetimes part of the Rust book 中有一段代码,但如果给定的字符串长度相等,它只会返回后一个字符串:
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
if x.len() > y.len() {
x
} else {
y
}
}
已经指出.len() 计算字节而不是Unicode 字符。所需的答案应该包括一个函数,该函数在字符串之一在 Unicode 字符方面更长的情况下返回最长的字符串;或其他字符串长度相等的情况。
【问题讨论】:
-
真的有必要问如何比较两个整数吗?字符串的“长度”很少是有趣的信息。
-
根据您的自我回答,我认为这个问题与Can I use '<' and '>' in match? 重复(阅读所有答案)。但是,我不知道我怎么能从单独阅读问题中弄清楚这一点,所以我投票“不清楚”。
-
如果您对字符数感兴趣,例如,您可以比较
a.chars().count()和b.chars().count(),或者,如果您的长度可能非常不同,请使用 this -
问题询问如何比较两个字符串的长度,然后提供一段代码来做这件事。如果你自己没有回答,潜在的回答者怎么可能猜到你想要什么答案?您可以编辑问题以更明确地说明代码中缺少的内容吗? “考虑到字符串长度相等的情况”可以通过“使用
>=而不是>”来回答是合乎逻辑的——这就是我最初假设的意思。
标签: rust