如何使用from_str
?我有片段
let base: u32 = from_str::<u32>(&var)
并获得错误
Error: unresolved name from_str
所以我用Google搜索了这个错误并找到了this,所以我尝试添加以下内容
use std::u32;
use std::from_str::FromStr
但现在我得到了
Error: unresolved import `std::from_str::FromStr` could not from `from_str` in `std`
根据this github问题,我需要包括这个但是生锈找不到它。这是怎么回事?这是一个超级简单程序,它给了我那些错误
use std::u32;
use std::from_str::FromStr;
fn main() {
let my_str = "String".to_string();
let base: u32 = from_str(&my_str);
}
这是一个微不足道的问题,但这些资源只是告诉我如何获得更多错误。
答案 0 :(得分:8)
Use the docs to search for from_str
.他们显示public override void Input0_ProcessInputRow(Input0Buffer Row)
{
// This block does **not** succeed in evaluating the Row.MealCode value
// with the .Contains("string") method. All rows evaluate as case else.
if (Row.MealCode.Contains("FREE"))
{
Row.tMealCode = "Free";
}
else
{
Row.tMealCode = "Else";
}
// This code successfully evaluates the value of MealCode
// in each row and correctly outputs it as a tMealCode value.
switch (Row.MealCode)
{
case "Free lunch":
case "FREE":
Row.tMealCode = "Free";
break;
case "Reduced Lunch":
case "RED":
Row.tMealCode = "Reduced";
break;
case "REG":
Row.tMealCode = "Regular";
break;
default:
Row.tMealCode = "Else";
break;
}
}
特征现在在FromStr
,而不是std::str
。 (2014年4月是Rust的术语很长,在Rust 1.0.0之前就好了。)
std::from_str
一般不应直接使用;您应该使用str.parse
method代替:FromStr
。请记住它返回my_str.parse::<u32>()
,因为字符串可能不包含数字。