作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Rust 编程语言中——我试图将整数转换为字符串表示,所以我写了类似的东西:
use std::int::to_str_bytes;
...
to_str_bytes(x, 10);
...但它说我必须指定第三个参数。文档在这里:http://static.rust-lang.org/doc/master/std/int/fn.to_str_bytes.html , 但我还不够聪明,无法理解它对第三个参数的期望。
最佳答案
使用 x.to_str()
作为 Njol's answer是获取整数的字符串表示形式的直接方法。但是,x.to_str()
返回一个拥有的(因此是堆分配的)字符串 (~str
)。只要不需要永久存储结果字符串,就可以通过在堆栈上分配字符串表示来避免额外的堆分配开销。这正是 std::int::to_str_bytes
函数的要点 - 提供数字的临时字符串表示。
第三个参数,类型为f: |v: &[u8]| -> U
,是一个接受字节切片的闭包(我不认为 Rust 有堆栈分配的字符串)。你可以这样使用它:
let mut f = std::io::stdout();
let result = std::int::to_str_bytes(100, 16, |v| {
f.write(v);
Some(())
});
to_str_bytes
返回闭包所做的任何事情,在本例中为 Some(())
。
关于rust - std::int::to_str_bytes 的第三个参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20895592/
在 Rust 编程语言中——我试图将整数转换为字符串表示,所以我写了类似的东西: use std::int::to_str_bytes; ... to_str_bytes(x, 10); ...但它说
我是一名优秀的程序员,十分优秀!