面试题答案
一键面试use std::fmt;
struct ComplexList {
data: Vec<(String, i32)>,
}
impl fmt::Debug for ComplexList {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_list()
.entries(self.data.iter().map(|(s, i)| {
let upper_s = s.to_uppercase();
(upper_s.as_str(), *i)
}))
.finish()
}
}
可能遇到的难点及解决方法:
- 字符串转换:需要将
String
转换为大写形式。可以使用to_uppercase
方法来实现。 - 格式化输出:要以美观易读的方式输出,使用
fmt::Formatter
提供的debug_list
等方法可以生成类似[("VALUE1", 1), ("VALUE2", 2)]
这样的格式,保证了易读性。