gpt4 book ai didi

rust - std::int::to_str_bytes 的第三个参数是什么?

转载 作者:行者123 更新时间:2023-11-29 07:58:24 24 4
gpt4 key购买 nike

在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com