You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rust中随机为flag赋值'D'或'C'?技术求助

解决随机赋值'C'或'D'的问题

你原来的代码问题在于gen_range(b'A', b'Z')是从所有大写字母里随机选一个,范围覆盖了A到Z所有字符,自然没法精准得到C或D。

给你两个简便的实现方法:

方法一:从指定字符数组中随机选取

直接定义包含'C'和'D'的数组,用rand库的方法随机选一个:

use rand::Rng;

fn main() {
    let mut rng = rand::thread_rng();
    let flag: char = ['C', 'D'].choose(&mut rng).unwrap();
    println!("{}", flag);
}

choose方法会从数组里随机挑一个元素,unwrap()是因为数组非空,不会出现错误。

方法二:通过随机布尔值映射字符

先生成概率各50%的布尔值,再对应到C或D:

use rand::Rng;

fn main() {
    let mut rng = rand::thread_rng();
    let flag: char = if rng.gen_bool(0.5) { 'C' } else { 'D' };
    println!("{}", flag);
}

注意:使用rand库需要在Cargo.toml里添加依赖:

[dependencies]
rand = "0.8"

内容的提问来源于stack exchange,提问作者Cult of Tranquility

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 05:50:44