d33*_*tah 1 rust borrow-checker
考虑以下代码:
extern crate clap;
use clap::{App};
use std::io;
fn parse_argv() -> &'static clap::ArgMatches {
return App::new("example")
.get_matches()
}
fn main() -> io::Result<()> {
let matches = parse_argv();
Ok(())
}
Run Code Online (Sandbox Code Playgroud)
这是错误:
extern crate clap;
use clap::{App};
use std::io;
fn parse_argv() -> &'static clap::ArgMatches {
return App::new("example")
.get_matches()
}
fn main() -> io::Result<()> {
let matches = parse_argv();
Ok(())
}
Run Code Online (Sandbox Code Playgroud)
这里有什么问题,我该如何解决?我想我做了编译器要求的,但错误不会消失。
我在#rust-beginners IRC 频道上得到了答案:
13:10:17 拖拉机 | d33tah:我怀疑 ArgMatches 实际上想要生命周期,所以在这种情况下 ArgMatches<'static>
因此,解决方案是将函数签名更改为:
fn parse_argv() -> clap::ArgMatches<'static> {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |