我写了一些Rust代码&String作为参数:
fn awesome_greeting(name: &String) {
    println!("Wow, you are awesome, {}!", name);
}
我还编写了代码来引用a Vec或Box:
fn total_price(prices: &Vec<i32>) -> i32 {
    prices.iter().sum()
}
fn is_even(value: &Box<i32>) -> bool {
    **value % 2 == 0
}
但是,我收到一些反馈意见,这样做并不是一个好主意.为什么不?
我想编写一个程序,分两步编写一个文件.在程序运行之前,该文件可能不存在.文件名是固定的.
问题是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 …我有以下代码,不知道如何让它工作:
fn new_int<'a>() -> &'a isize {
    &5
}
fn main() {
    let x = new_int();
}
或者另一种尝试:
fn new_int<'a>() -> &'a isize {
    let a: &'a isize = &5;
    a
}
fn main() {
    let x = new_int();
}