d随机字母串
原文
如果可不压缩太多
代码,用作区间
,则会更加灵活:
auto randomAlphanumeric(string S)(size_t len)
{
import std.array : array;
import std.random : choice, Random, unpredictableSeed;
import std.range : generate, take;
auto rnd = Random(unpredictableSeed);
auto gen = generate!(() => S.array.choice(rnd));
return gen.take(len);
}
import std.ascii, std.stdio;
void main()
{
auto str = 16.randomAlphanumeric!lowercase;
auto hex = 16.randomAlphanumeric!hexDigits;
foreach(c; str)
{
c.write;
}
writeln("\n", hex); /* Prints:
tqapxlqouvbpgsia
862C234EE3D9CFC4
*/
}
我更喜欢用枚举
,因为它很简单.如,如下简单:
generate!(function char() => uniform!Enum)
把它放进函数
中,并把符
类型枚举
放进构中:
auto randomFromEnumerate(E)(size_t len)
{
import std.random : rnd = uniform;
import std.range : generate, take;
return generate!(function char() => rnd!E).take(len);
}
struct E {
enum num {
o = '0', p, q, r, s, t, u, v, w, x,
}
enum hex {
o = '0', p, q, r, s, t, u, v, w, x,
a = 'A', b, c, d, e, f
}
enum dna {
a = 'A', c = 'C', g = 'G', t = 'T'
}
enum lowercase {
a = 'a', b, c, d, e, f, g, h, i, j, k, l,
m, n, o, p, q, r, s, t, u, v, w, x, y, z
}
}
void main()
{
10.randomFromEnumerate!(E.dna).writeln;
// CGTGAGGGTC
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现