<分区>
我的 previous question告诉我 Rust 不能在结构中引用自身。
所以我的问题会变成:当我需要引用自身时如何设计一个结构体?
我们可以以这个结构为例:
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
提供了一个可迭代字符串拆分的接口(interface)。
(这只是一个例子,所以我想知道关于设计结构的更一般的想法,而不是专门针对这种拆分情况。此外,没有标准的拆分。)