String.iter()在Rust中做了什么?

时间:2014-12-13 16:44:37

标签: rust

我对Rust的一些代码感到困惑,但我正在管理它。但是我在理解函数iter()如何在Rust中工作时遇到了问题。 String的可能结果是什么?

修改

impl Selector {
    pub fn specificity(&self) -> Specificity {
        // http://www.w3.org/TR/selectors/#specificity
        let Selector::Simple(ref simple) = *self;
        let a = simple.id.iter().len();
        let b = simple.class.len();
        let c = simple.tag_name.iter().len();
        (a, b, c)
    }
}

simple.idstring

1 个答案:

答案 0 :(得分:2)

您似乎引用了Robinson中的代码,特别是this file

请注意SimpleSelector定义为:

pub struct SimpleSelector {
    pub tag_name: Option<String>,
    pub id: Option<String>,
    pub class: Vec<String>,
}

所以id 一个String,而Option<String>

Option上的

iter定义为:

  

返回可能包含的值的迭代器。

这允许您编写如果值为Some将会发生的代码,如果是None则不会发生。