`" 的奇怪编译错误-6ren"> `" 的奇怪编译错误-我已经像这样定义了一个结构和方法: struct Lexer { input: String, pos: CharIndices, next_pos: Peekable>, -6ren">
gpt4 book ai didi

compiler-errors - 带有生命周期符号 : "expected ` :`, found ` >`" 的奇怪编译错误

转载 作者:行者123 更新时间:2023-11-29 08:20:18 25 4
gpt4 key购买 nike

我已经像这样定义了一个结构和方法:

struct Lexer<'a> {
input: String,
pos: CharIndices<'a>,
next_pos: Peekable<CharIndices<'a>>,
ch: char,
}

impl<'a> Lexer<'a> {
pub fn new(input: String) -> Lexer<'a> {
let mut lexer = Lexer<'a> {
input,
pos: input.char_indices(),
next_pos: input.char_indices().peekable(),
ch: char::from(0 as u8),
};

lexer
}
}

编译时出现错误

error: expected `:`, found `>`
--> src/lexer/mod.rs:15:33
|
15 | let mut lexer = Lexer<'a> {
| ^ expected `:`

但是,按照它的要求进行操作并将有问题的行更改为 let mut lexer = Lexer<'a:> {没有意义,重新编译确认这确实是不正确的。

error: expected `while`, `for`, `loop` or `{` after a label
--> src/lexer/mod.rs:15:34
|
15 | let mut lexer = Lexer<'a:> {
| ^ expected `while`, `for`, `loop` or `{` after a label

我不确定为什么编译器会报错,而且据我所知,生命周期符号对我来说看起来不错。

Rust Playground

最佳答案

我刚刚意识到,构造函数不需要生命周期。

正确的写法是

let mut lexer = Lexer {

不是

let mut lexer = Lexer<'a> {

关于compiler-errors - 带有生命周期符号 : "expected ` :`, found ` >`" 的奇怪编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54068231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com