< 返回版块

寝鬼社畜 发表于 2019-10-25 15:27

关于rust for example中的一些小疑问
1、关于impl std::fmt::Display for List(自己定义的结构){..}是否可以理解为,在Display方法下新建对于List类型的处理?原理是不是遇到{}自动判断参数类型,调用Display对应类型的函数啊...这是不是所谓的语法糖?
2、之中有个例子 let vec = &self.0; 这是不是类似与c语言中取数组首地址?(不太确定以以前的思考方式来思考rust的逻辑是不是对的)
3、打印一个数,能不能在转为十六进制的同时保留两位数,不足补零啊...只会分两步搞

评论区

写评论
作者 寝鬼社畜 2019-10-26 08:07

好的~我去康康,谢谢啦 对以下内容的回复:

simoin 2019-10-25 17:48

这是traitFormatting-traits 有说,输出格式为{}时,参数类型需要实现std::fmt::Display;输出格式为{:p},就需要实现std::fmt::Pointer。格式化参数https://doc.rust-lang.org/std/fmt/#formatting-parameters。后面那个是迭代器

作者 寝鬼社畜 2019-10-25 16:05

原文在这里https://doc.rust-lang.org/rust-by-example/hello/print/print_display/testcase_list.html 对以下内容的回复:

作者 寝鬼社畜 2019-10-25 16:03

那个例子后面紧接着就使用了 for (count, v) in vec.iter().enumerate() 所以感觉有点像c语言的取首地址... 不知道该怎么理解他是怎么调用元组里其他元素的,如果不是取首地址的话 对以下内容的回复:

moxiangli 2019-10-25 15:35

self.0这种用法,一般可以用于元组结构体,表示取该结构第一个元素的内容

1 共 5 条评论, 1 页