2
所以我試圖在字符串中找到一個模式並將其轉換爲整數。將字符串解析爲整數
首先我尋找一個字符串:
let haystack = "HTTP/1.1 200\r\n";
let needle = "HTTP/1.";
let http_location = haystack.rfind(needle);
if (http_location.is_some()) {
現在,我已經找到了我能想到的兩種方式來獲得數字狀態。或者:
let mut temp_str = haystack.char_at(http_location.unwrap());
let status = String::from_str(temp_str);
}
或者:
let status = String::from_str(&haystack[http_location.unwrap()]);
}
不幸的是兩者都被棄用(反正可能是錯的)。目前正確的做法是什麼?
而且,是這部分文體正確?:
let http_location = haystack.rfind(needle);
if (http_location.is_some())
這是鏽應該在「生產」被寫入的方式嗎?它看起來非常簡潔,似乎是作者在離開代碼一段時間後很難理解的東西。無論如何,你能解釋'.and_then()'的功能和語法到底是什麼嗎?我覺得它的官方文檔假定有一些我沒有的函數式編程知識。 –
@andreyg美麗是在旁觀者的眼中,我想!你當然可以用更多的'match'語句重寫它,或者從'Option'升級到'Result',然後使用'try!'宏。我已經添加了這個和一個正則表達式的例子。我不能爲整個Rust社區說話,但你一定要寫出你能理解的代碼! *每個人都知道,調試比編寫程序要困難一倍。所以,如果你在編寫代碼的時候能夠像你一樣聰明,那麼你將如何調試它?* - [Brian Kernighan](http://en.wikiquote.org/wiki/Brian_Kernighan) – Shepmaster