加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 是否为集合记录了乘法运算符?

发布时间:2020-12-15 04:17:47 所属栏目:大数据 来源:网络整理
导读:我今天注意到了这段代码,并想知道这些类型的操作是否记录在某处以及为什么这样做(性能等). var Shift: TShiftStatebegin if [ssShift,ssCtrl] * Shift [] then begin ... end;end; 从我的测试看起来它只是看着这样的代码检查Shift是否包含ssShift或ssCtrl.这
我今天注意到了这段代码,并想知道这些类型的操作是否记录在某处以及为什么这样做(性能等).
var
  Shift: TShiftState
begin
  if [ssShift,ssCtrl] * Shift <> [] then
  begin
    ...
  end;
end;

从我的测试看起来它只是看着这样的代码检查Shift是否包含ssShift或ssCtrl.这是记录在案的行为,还是只是利用集合内部实际存储为整数的事实?

解决方法

当与集合一起使用时,这不是乘法运算符;它是交叉点运算符.这是记录在案的,并且自德尔福之前就开始了.见 Expressions,特别是有关设定操作的部分.它们是联合,交集,子集和超集,平等,不平等和成员资格的标准数学运算符.

以下是文档表格的摘要:

Operator  Operation     Operand Types  Result Type  Example  
--------  ---------     -------------  -----------  -------
+          union        set            set          Set1 + Set2 
-          difference   set            set          S - T 
*          intersection set            set          S * T 
<=         subset       set            Boolean      Q <= MySet 
>=         superset     set            Boolean      S1 >= S2 
=          equality     set            Boolean      S2 = MySet 
<>         inequality   set            Boolean      MySet <> S1 
in         membership   ordinal,set   Boolean      A in Set1 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读