MST

星途 面试题库

面试题:Rust中如何在结构体中应用富错误

请描述在Rust中,怎样定义一个包含Result类型字段的结构体,用于处理富错误场景。假设结构体表示一个文件操作结果,其中Result类型需要处理文件读取可能出现的IO错误,并提供简单的示例代码。
36.0万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

在Rust中,可以这样定义包含Result类型字段的结构体来处理富错误场景:

use std::io;

struct FileOperationResult {
    data: Result<String, io::Error>,
}

impl FileOperationResult {
    fn new(file_path: &str) -> Self {
        let data = std::fs::read_to_string(file_path);
        FileOperationResult { data }
    }
}

fn main() {
    let result = FileOperationResult::new("nonexistent_file.txt");
    match result.data {
        Ok(content) => println!("File content: {}", content),
        Err(e) => println!("Error: {}", e),
    }
}

在上述代码中:

  1. 首先引入了std::io模块,用于处理IO错误。
  2. 定义了FileOperationResult结构体,它有一个data字段,类型为Result<String, io::Error>String表示成功读取文件后的内容,io::Error表示文件读取过程中可能出现的IO错误。
  3. FileOperationResult结构体实现了一个new方法,该方法接受一个文件路径字符串,尝试读取文件内容并将结果保存在data字段中。
  4. main函数中,创建了FileOperationResult实例并通过match语句处理Result类型的data字段,根据结果进行相应的输出。