You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rust主进程中调用函数并在主进程打印文件创建时间?

问题解答

问题1:如何在主进程中调用函数并打印值?

核心是让被调用函数返回需要打印的数据,再在主函数中接收返回值并执行打印。示例代码:

fn get_target_value() -> i32 {
    42 // 返回要打印的目标值
}

fn main() {
    let result = get_target_value();
    println!("{}", result); // 在主进程完成打印
}

如果函数可能执行出错,可返回Result类型,主函数中处理错误后再打印。

问题2:调整代码在主进程中打印文件创建时间

修改get_created函数,让它返回文件创建时间的结果(而非直接打印),将打印逻辑移至main函数中:

修改后的完整代码

use std::fs;
use std::time::SystemTime;

fn get_created(path: &str) -> std::io::Result<Option<SystemTime>> {
    let metadata = fs::metadata(path)?;
    // 获取创建时间,用ok()将Err转为None,统一返回Option
    let created_time = metadata.created().ok();
    Ok(created_time)
}

fn main() {
    // 调用函数并处理不同结果分支
    match get_created("your_file_path.txt") {
        Ok(Some(time)) => println!("文件创建时间: {:?}", time),
        Ok(None) => println!("该平台或文件系统不支持获取创建时间"),
        Err(e) => println!("获取文件元数据失败: {}", e),
    }
}

关键调整说明

  • 函数返回值从std::io::Result<()>改为std::io::Result<Option<SystemTime>>,将数据传递回主函数
  • 移除原函数内部的打印逻辑,仅保留文件创建时间的获取逻辑
  • 在main中通过match匹配返回结果,分场景处理打印

内容的提问来源于stack exchange,提问作者stloc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 05:25:30