我之前的问题告诉我,锈不能在结构中引用它自己.
所以我的问题将成为:当我需要引用自身时如何设计结构?
我们可以将此结构作为示例:
struct SplitByChars<'a> {
seperator: &'a Seperator,
string: String,
chars_iter: std::str::Chars<'a>,
}
impl<'a> SplitByChars<'a> {
fn new<S>(seperator: &'a Seperator, string: S) -> SplitByChars where S: Into<String> {
SplitByChars {
seperator: seperator,
string: string.into(),
chars_iter: self.string.chars(), // error here: I cannot use self (of course, static method)
}
}
}
我使用chars_iter来提供可迭代字符串拆分的接口.
(这只是一个例子,所以我想知道关于设计结构的更一般的想法,而不是特别在这个分裂的情况下.此外,没有std的分裂.)
Thx提前!
最佳答案 你不能. Rust的迭代器不是以这种方式使用的.重新排列事物,以便您不需要将字符串存储在迭代器中.它应该只有一个参考.