下面我有一个结构SplitByChars
。
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: I cannot use self here!
}
}
}
我正在尝试为它实现new
静态函数。特别是,我想返回一个SplitByChars
实例,其chars_iter
字段使用同一实例的先前初始化的string
字段进行初始化。为此,我目前正在尝试使用self.string
访问相同的字段,但我收到错误。
我该怎么做?
答案 0 :(得分:1)
我该怎么做?
你做不到。除非我误解了你的问题,否则这与this one的问题相同。结构通常不能引用自己。
答案 1 :(得分:-1)
我认为你让事情变得过于复杂。在特定字符处拆分字符串可以通过以下方式完成:
Projects
输出:
let s: String = "Tiger in the snow".into();
for e in s.split(|c| c == 'e') {
println!("{}", e);
}
分割功能有多种变体可以满足各种需求。