如何在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
相关产品推荐
相关产品推荐

