您的位置:首页 > 房产 > 建筑 > 网站建设教程设_网页设计需要学什么软件知乎_品牌咨询_百度竞价推广屏蔽软件

网站建设教程设_网页设计需要学什么软件知乎_品牌咨询_百度竞价推广屏蔽软件

2025/4/24 3:24:15 来源:https://blog.csdn.net/BECOMEviolet/article/details/145663942  浏览:    关键词:网站建设教程设_网页设计需要学什么软件知乎_品牌咨询_百度竞价推广屏蔽软件
网站建设教程设_网页设计需要学什么软件知乎_品牌咨询_百度竞价推广屏蔽软件

1-2

显示 (Display)
// 动手试一试
use std::fmt;#[derive(Debug)]
struct Complex {real: f64,imag: f64,
} impl fmt::Display for Complex {fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {write!(f, "{} + {}i", self.real, self.imag)}
}
fn main() {let complex = Complex {real: 3.3,imag: -7.2,};println!("Display: {}", complex);println!("Debug: {:?}", complex);
}
要点1 :Display fmt(&self, f: &mut fmt::Formatter<'_>)  -> fmt::Result {} 
要点2 :write!:将格式化后的数据写入到 Formatter
要点3 :最后一行不写分号默认为返回值
要点4 :Result 是一种用于错误的枚举类型  操作的结果 -> 成功 或 失败
测试实例: List
//动手试一试
use std::fmt; struct List(Vec<i32>);impl fmt::Display for List {fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {// 使用元组的下标获取值,并创建一个 `vec` 的引用。let vec = &self.0;write!(f, "[")?;for (index, value) in vec.iter().enumerate() {if index != 0 {write!(f, ", ")?; }write!(f, "{}: {}", index, value)?;}write!(f, "]")}
}
fn main() {let v = List(vec![1, 2, 3]);println!("{}", v);
}
要点1 : ? 用于传播错误给调用者
要点2for (index, value) in vec.iter().enumerate()  是一种常见用法 index 是 usize value 是 &i32
要点3 : 一般描述嵌套类型 例如 元组结构体 最外层的就是最本质的, 名字最后的也是最本质的 
格式化
// 动手试一试
use std::fmt::{self, Formatter, Display};struct Color {red: u8,green: u8,blue: u8,
}
impl Display for Color {fn fmt(&self, f: &mut Formatter) -> fmt::Result {let hex = format!("{:02X}{:02X}{:02X}", self.red, self.green, self.blue);write!(f, "RGB ({}, {}, {}) 0x{}", self.red, self.green, self.blue, hex)}
}
fn main() {for color in [Color { red: 128, green: 255, blue: 90 },Color { red: 0, green: 3, blue: 254 },Color { red: 0, green: 0, blue: 0 },].iter() {println!("{}", *color);}
}
要点1 : 格式化字符 X 为 大写十六进制数
要点2 : format!() 返回字符串
要点3 : 需要在循环体内 对color 进行解引用

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com