是否有任何方法返回对在函数中创建的变量的引用?我想要写一个程序,将写一个文件在两个步骤。在程序运行之前,该文件很可能不存在。文件名是固定的。问题是OpenOptions.new().write()可能会失败。在这种情况下,我想调用一个自定义函数。trycreate()..这样做的目的是创建文件,而不是打开它并返回一个句柄。既然文件名是固定的,trycreate()没有参数,并且我不能设置返回值的生存期。我如何解决这个问题?use std::io::Write;use std::fs::OpenOptions;use std::path::Path;fn trycreate() -> &OpenOptions {
let f = OpenOptions::new().write(true).open("foo.txt");
let mut f = match f {
Ok(file) => file,
Err(_) => panic!("ERR"),
};
f}fn main() {
{
let f = OpenOptions::new().write(true).open(b"foo.txt");
let mut f = match f {
Ok(file) => file,
Err(_) => trycreate("foo.txt"),
};
let buf = b"test1\n";
let _ret = f.write(buf).unwrap();
}
println!("50%");
{
let f = OpenOptions::new().append(true).open("foo.txt");
let mut f = match f {
Ok(file) => file,
Err(_) => panic!("append"),
};
let buf = b"test2\n";
let _ret = f.write(buf).unwrap();
}
println!("Ok");}
2 回答
隔江千里
TA贡献1906条经验 获得超10个赞
有没有任何方法可以在没有参数的情况下从函数返回引用?
OpenOptions::create
main
let f = OpenOptions::new().write(true).create(true).open(b"foo.txt");
- 2 回答
- 0 关注
- 588 浏览
添加回答
举报
0/150
提交
取消