×
D语言教程D语言概述,D语言是什么?D语言开发环境设置D语言基本语法D语言变量D语言数据类型D语言枚举EnumsD语言常值D语言运算符D中算术运算符D语言关系运算符D语言逻辑运算符D语言位运算符D语言赋值运算符D语言sizeof运算符D语言运算符优先级D语言循环D语言while循环D语言for循环D语言do...while循环D语言嵌套循环D语言break语句D语言continue语句D语言决策语句D语言if语句D语言if...else语句D语言if嵌套语句D语言switch语句D语言嵌套switch语句D语言函数D语言字符D语言字符串-StringD语言数组D语言关联数组D语言指针D语言元组D语言结构体D语言联合体D语言范围D语言别名D语言混合类型D语言模块D语言模板D语言常量D语言文件I/OD语言并发D语言异常处理契约式编程D语言条件编译D语言类和对象D语言类成员函数类的访问修饰符构造函数和析构函数this指针类指针类的静态成员类继承重载一元运算符重载二元运算符重载比较操作符重载D语言封装D语言接口D语言抽象类

比较操作符重载


下表显示的比较运算符,其目的列表。

函数名 运算符 目的
opCmp < whether before
opCmp <= whether not after
opCmp > whether after
opCmp >= whether not before

比较操作符是用于排序的数组和一个示例如下所示如何使用比较性研究运算符。

import std.random;
import std.stdio;
import std.string;

struct Box
{
   int volume;

   int opCmp(const ref Box box) const
   {
      return (volume == box.volume  
              ? box.volume - volume: volume - box.volume);
   }

   string toString() const
   {
      return format("Volume:%s
", volume);
   }
}
void main()
{
   Box[] boxes;
   int j= 10;
   foreach (i; 0 .. 10) {
      boxes ~= Box(j*j*j);
      j = j-1;
   }
   writeln("Unsorted Array");
   writeln(boxes);

   boxes.sort;
   writeln("Sorted Array");
   writeln(boxes);
   writeln(boxes[0]<boxes[1]);
   writeln(boxes[0]>boxes[1]);
   writeln(boxes[0]<=boxes[1]);
   writeln(boxes[0]>=boxes[1]);

}

让我们编译和运行上面的程序,这将产生以下结果:

Unsorted Array
[Volume:1000
, Volume:729
, Volume:512
, Volume:343
, Volume:216
, Volume:125
, Volume:64
, Volume:27
, Volume:8
, Volume:1
]
Sorted Array
[Volume:1
, Volume:8
, Volume:27
, Volume:64
, Volume:125
, Volume:216
, Volume:343
, Volume:512
, Volume:729
, Volume:1000
]
true
false
true
false

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)