MST
星途 面试题库

面试题:Rust中write!宏如何格式化输出自定义结构体

假设你有一个Rust自定义结构体`Point { x: i32, y: i32 }`,请使用`write!`宏将这个结构体实例格式化为字符串,格式为`(x,y)`,并展示如何处理可能出现的错误。
33.1万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
use std::fmt::Write;

#[derive(Debug)]
struct Point {
    x: i32,
    y: i32,
}

fn main() {
    let point = Point { x: 10, y: 20 };
    let mut result = String::new();
    match write!(&mut result, "({}, {})", point.x, point.y) {
        Ok(_) => {
            println!("Formatted string: {}", result);
        }
        Err(e) => {
            eprintln!("Error occurred while formatting: {}", e);
        }
    }
}

在上述代码中:

  1. 首先定义了Point结构体。
  2. main函数中创建了Point结构体实例。
  3. 使用write!宏尝试将Point实例格式化为(x, y)形式的字符串,write!宏返回一个Result类型。
  4. 通过match表达式处理Result,如果是Ok,则打印格式化后的字符串;如果是Err,则打印错误信息。