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