30用d编程统一调用
用这样variable.foo(arguments)
的方式调用foo(variable, arguments)
这样的函数
class Car {
enum economy = 12.5; // 每公升平均
private double fuelAmount; // 公升
this(double fuelAmount) {
this.fuelAmount = fuelAmount;
}
double fuel() const {
return fuelAmount;
}
// ...
}
成员函数有用,但不是都要搞成成员函数
,因为有些是特殊函数,搞不成.
bool canTravel(Car car, double distance) {
return (car.fuel() * car.economy) >= distance;
}
就可以类似
if (car.canTravel(100)) { //保持形式的统一
// ...
}
当函数是链式
调用时,特别有用.
int[] divide(int[] slice, int divisor) {
int[] result;
result.reserve(slice.length);
foreach (value; slice) {
result ~= value / divisor;
}
return result;
}//除
int[] multiply(int[] slice, int multiplier) {
int[] result;
result.reserve(slice.length);
foreach (value; slice) {
result ~= value * multiplier;
}
return result;
}//乘
// 偶数
int[] evens(int[] slice) {
int[] result;
result.reserve(slice.length);
foreach (value; slice) {
if (!(value % 2)) {
result ~= value;
}
}
return result;
}
就可以这样调用:
import std.stdio;
// ...
void main() {
auto values = [ 1, 2, 3, 4, 5 ];
writeln(evens(divide(multiply(values, 10), 3)));
}
//或者这样
writeln(values.multiply(10).divide(3).evens);
//
import std.stdio;
import std.algorithm;
void main() {
auto values = [ 1, 2, 3, 4, 5 ];
writeln(values
.map!(a => a * 10)
.map!(a => a / 3)
.filter!(a => !(a % 2)));
}//一步步.
【推荐】国内首个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岁的心里话
· 按钮权限的设计及实现