[英]How would I append an Option<char> to a string?
我正在將match
語句與.chars().next()
,如果某個字符與某個字符match
, .chars().next()
將一個字符附加到字符串中。 我正在嘗試這樣做
keyword.push(line.chars().next())
但出現錯誤:
expected type 'char' found type Option<<char>>
我如何將其附加到我的字符串上?
就是這樣:因為next()
返回Option<char>
,所以很可能返回None
。 您需要考慮這種情況...否則,您可能會引起恐慌,並且您的應用程序將退出。
因此,盲目且容易出錯的方法是將其拆開:
keyword.push(line.chars().next().unwrap());
這可能會在某個時候崩潰。 您想要的是對其進行重構,並確保其中存在某些內容:
match line.chars().next() {
Some(c) => {
if c == 'H' || c == 'W' {
keyword.push(c);
}
},
None => ()
}
正如Shepmaster在評論中指出的那樣,可以將上述特定情況(我們只關心match
一個分支)簡化為if let
綁定:
if let Some(c) = line.chars().next() {
if c == 'H' || c == 'W' {
keyword.push(c);
}
}
就是說-您可以通過for
循環進行迭代來免費獲得所有功能:
for c in line.chars() {
if c == 'H' || c == 'W' {
keyword.push(c);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.