10用d编程--当
import std.stdio;
import std.random;
void main() {
int number = uniform(1, 101);//`std.random`中
writeln("想1到100间数.");
int guess;
do {
write("你猜哪个? ");
readf(" %s", &guess);
if (number < guess) {
write("小于它. ");
} else if (number > guess) {
write("大于它. ");
}
} while (guess != number);
writeln("正确!");
}
关联数组:就是c++的无序映<,>
.
// key : value
int[string] dayNumbers =
[ "Monday" : 0, "Tuesday" : 1, "Wednesday" : 2,
"Thursday" : 3, "Friday" : 4, "Saturday" : 5,
"Sunday" : 6 ];
writeln(dayNumbers["Tuesday"]); // prints 1
//在
int[string] colorCodes = [ /* ... */ ];
if ("purple" in colorCodes) {//在
// 表中有"purple"
} else {
// 表中不存在"purple"
}
不在,取默认值:
int [string] colorCodes = [ "blue":10,"green":20];
writeln(colorCodes.get("purple",-1));
常用属性:
名 | 意思 |
---|---|
.length | 长度 |
.keys | 复制返回动态数组 |
.byKey | 不复制, |
.values | 值,复制,动态 |
.byValue | 不复制 |
.byKeyValue | 不复制, |
.rehash | 再哈希,大量插入后,改一改,更有效 |
.sizeof | 数组引用大小. |
.get | 取 |
.remove | 删 |
.clear | 清理所有 |
每一,迭代的是容器/区间/类
foreach (value; aa) {
writeln(value);
}//aa为关联数组
foreach (key; aa.byKey) {
writeln(key);
}//按键
foreach (element; aa.byKeyValue) {
writefln("The value for key %s is %s",
element.key, element.value);
}//按键值
foreach (number; 10..15) {
writeln(number);
}//数字区间,
structs, classes, and ranges
,也可以opApply
,来循环.
要这样用
foreach (ref number; numbers) {//加个引号
number *= 2;
}//不然,是复制的元素,不是自身
auto container = [ 1, 2, 3 ];
foreach_reverse (element; container) {
writefln("%s ", element);
}//逆向
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现