16用d编程编程环境
main()可有string[]
参数
可用std.getopt
取命令.
import std.stdio;
import std.getopt;
import std.random;
void main(string[] args) {
int count;
int minimum;
int maximum;
getopt(args,"count", &count,"minimum", &minimum,"maximum", &maximum);
//可改进如下.
getopt(args,"count|c", &count,"minimum|n", &minimum,"maximum|x", &maximum);
//即-c 等价于--count
foreach (i; 0 .. count) {
write(uniform(minimum, maximum + 1), ' ');
}
writeln();
}
取环境变量.
import std.stdio;
import std.process;//访问环境变量
void main() {
writeln(environment["PATH"]);
}
将之转为aa
string[string] envVars = environment.toAA();
启动其他函数,类似c++的系统
,py
的os.system
.
import std.stdio;
import std.process;//执行命令
void main() {
const result = executeShell("ls -l deneme");
//执行壳命令.
const returnCode = result[0];
const output = result[1];
writefln("ls 返回 %s.", returnCode);
writefln("输出:\n%s", output);
}
main
虽然是void
,返回的也是成功为0,失败为非0
.
import std.stdio;
int main(string[] args) {
if (args.length != 3) {
stderr.writefln("错误! 正确用法:\n" ~"%s 词1 词2", args[0]);
return 1;
}
writeln(args[2], ' ', args[1]);
return 0;
}
stderr,类似stdout
,都输出在控制台
.
异常,没啥看头,不喜欢.try-catch-finally
.出错就重新改.
scope
语句,三个:
scope(exit,成功,失败),后两个成功或失败后执行.第一个退出域时则执行.失败指出现异常.可以写成块.其实就是函数版的析构函数
断定(logical_expression);
断定(logical_expression,message);
//上面为语法.断定必须成立,否则运行失败
double averageAge(double first, double second) {
assert(first >= 0);
assert(second >= 0);
return (first + second) / 2;
}
void main() {
auto result = averageAge(-1, 10);
}
//下面是未达分支,或无效分支.
} else {
assert(false);//到达这里,就是失败.
}
static assert
编译时必须成立的断定
.这相当于说是前提条件
.没有前提条件
,程序就可以退出了.
断定
在单元测试/合同编程
中很重要.
-release
开关,会在发布版本中删掉断定
.而断定(假)
的地方不会删除.表示不可达
.
enforce
确保抛
异常.如果不满足条件,就抛.
不能完成任务
,就抛异常.
异常是错误,但不是所有错误都是异常.
异常是可以恢复
的错误.经过处理
后就正常了.
【推荐】国内首个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岁的心里话
· 按钮权限的设计及实现