我正在尝试使用 Rust 创建一个函数,给定一个整数,返回一个类型的值String。
我面临的主要问题是创建一个随机角色;一旦我能做到这一点,我就可以在循环或类似的东西中连接很多这些字符,然后返回最终的字符串。
我试图找到一种方法来对randomrand 箱中的函数返回的整数进行类型转换(就像在 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()
}
Run Code Online (Sandbox Code Playgroud)
如果您希望使用 中未提供的自定义发行版rand::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
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3135 次 |
| 最近记录: |