gpt4 book ai didi

random - 在 Rust 中生成安全随机数

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

我可以看到我必须像这样导入:

use std::io::IoResult;
use std::num::{Int, ToPrimitive};
use std::rand::{OsRng, Rng};

然后创建一个新的 OsRng 实例,并尝试从中生成一个新的 u32 int

fn main() {

let mut rng = OsRng::new();

let num:u32 = rng.next_u32();
println!("{}",num);
}

但是我得到错误类型 core::result::Result<std::rand::os::imp::OsRng, std::io::IoError>未在名为 next_u32 的范围内实现任何方法

但是 rust 文档清楚的说有一个函数 next_u32http://doc.rust-lang.org/std/rand/struct.OsRng.html

我错过了什么?

最佳答案

你的问题是 OsRng::new()不返回 OsRng实例,而是一个 IoResult<OsRng> .因为程序可能无法获取操作系统随机数生成器。

示例用法是:

use std::rand::{OsRng, Rng};

fn main() {

let mut rng = match OsRng::new() {
Ok(g) => g,
Err(e) => panic!("Failed to obtain OS RNG: {}", e)
};

let num:u32 = rng.next_u32();
println!("{}",num);
}

关于random - 在 Rust 中生成安全随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27362523/

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