【发布时间】:2014-12-13 17:39:51
【问题描述】:
我在Rust中有以下代码,我想把它翻译成Java,所以我首先需要理解代码。
pub struct SimpleSelector {
pub tag_name: Option<String>,
pub id: Option<String>,
pub class: Vec<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)
}
}
我在这行代码中遇到问题:
let a = simple.id.iter().len();
【问题讨论】:
-
所以
a如果 id 为“None”则为 0,如果为“Some”则为 1。有更清晰的写法!例如self.id.is_some() as uint。 :)