gpt4 book ai didi

random - 如何在 Rust 中生成一串具有特定大小的随机 ASCII 可打印字符?

转载 作者:行者123 更新时间:2023-12-03 11:42:04 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How do I create a random String by sampling from alphanumeric characters?

(2 个回答)



How can I randomly select one element from a vector or array?

(5 个回答)


2年前关闭。




我正在尝试使用 Rust 创建一个函数,给定一个整数,返回一个 String 类型的值.

我面临的主要问题是创建一个随机角色;一旦我能做到这一点,我就可以在一个循环或类似的东西中连接很多这些字符,然后返回最终的字符串。

我试图找到将 random 返回的整数类型转换为整数的方法。 rand crate 中的函数(就像您在 C++ 中所做的那样),但这似乎不是要走的路。

我该怎么办?

最佳答案

Rust Cookbook展示了如何优雅地实现这一点。从上面的链接复制:

use rand::{thread_rng, Rng};
use rand::distributions::Alphanumeric;

fn random_string(n: usize) -> String {
thread_rng().sample_iter(&Alphanumeric)
.take(n)
.collect()
}

如果您希望使用 rand::distributions 中不可用的自定义分发,您可以按照 source code for one of the distributions 来实现它看看如何自己实现它。下面是一些随机符号分布的示例实现:
use rand::{Rng, seq::SliceRandom};
use rand::distributions::Distribution;

struct Symbols;

impl Distribution<char> for Symbols {
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> char {
*b"!@#$%^&*()[]{}:;".choose(rng).unwrap() as char
}
}

关于random - 如何在 Rust 中生成一串具有特定大小的随机 ASCII 可打印字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59553586/

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