打字问题 - 页 8

 
Ilya Malev:

这不是和Print(ColorToString(Color&(uint(-1)&65535)|(230<<16))一样吗

按结果是的,按行动是的。

我恐怕会绞尽脑汁研究你的代码。

也就是说,我的意思是,除了大量的大写字母与下划线和上下文解析操作 外,你的方法中的一切都很令人愉快(不是开玩笑):)

我认为,如果允许它(上下文决议的操作)超载,你和你的图书馆就会变成星际:笑。

要想不写一个库,而是想出一个可用的库,这很难。

 
fxsaber:

从结果看是的,从行动看不是。//好吧,是的,通过行动Print(ColorToString( Color=(Color&(uint(-1)&65535)|(230<<16)))); :)

要想不写一个库,而是想出一个可用的库,这很难。// 如果你没有像你那样对终端的特殊性有丰富的经验,这两者都很困难 :)

 
Ilya Malev:

不,这根本不是所用的算法。该库并不关心变量的类型。

 
fxsaber:

不,这根本不是所用的算法。该库并不关心变量的类型。

这不是变量的类型,而是它的名字=,即赋值。行动和结果是一样的--变量被改变。

虽然我没有深入到图书馆,所以如果有什么不对,请原谅我。
 
Ilya Malev:

这不是变量的类型,而是它的名字=,即赋值。行动和结果是一样的--变量被改变。

虽然我没有深入图书馆,所以如果有什么不对,请原谅我。

例如,你可以用MqlTick-variable 代替一个整数变量。

 
fxsaber:

例如,你可以用一个MqlTick-variable 代替一个整数变量。

我明白,一切都很普遍。我们已经在下一个主题中一起解决了复制结构的问题 :)我目前没有面临这个问题。我也处理过从字节构建各种类型的数据和修改位域的问题,虽然数量可有可无,但没有特别的实际收益:)

 
Ilya Malev:

我明白,你们有一切共同点。我们最近在一个相邻的主题中解决了一起复制结构的问题 :)我目前没有面临这个问题。而我一直在处理从字节构建各种类型的数据和修改位域的问题,虽然数量可有可无,但没有任何特别的实际用途 :)

所以,可以创建A(Object)[Index]=5。

 
fxsaber:

我只是想说,有可能创建A(Object)[Index]=5。

当然,如果你把所有的东西都当作一种类型来处理--字节或比特或英特的集合,那么你就可以,但这是从另一个平面来看的,它不是关于制作简单、直观、易于理解和可改变的代码。

 

我也喜欢在int、double和datetime之间没有区别。在这里,也许有人会喜欢这个想法(在分配速度方面实际上与原来的类型没有区别)。

#property strict

class price{ public:
  int    operator| (double p){return(int)(p*100000);}
  double operator| (int p){return(double)p/100000.0;}};

class time{ public:
  int operator| (datetime p){return(int)uint(p);}
  datetime operator| (int p){return(datetime)uint(p);}};

price f;
time t;

void OnStart()
 {
  int  bid = f|Bid, ask = f|Ask, time1 = t|TimeCurrent(), time2 = t|TimeLocal();
  
  Print("Bid = ", f|bid, " Ask = ", f|ask, " Current time = ", t|time1, " Local time = ", t|time2);
 }  


将保证对外汇(价格不大于21474的整数)和截至2107年的日期起作用。
 
Ilya Malev:

我也喜欢在int、double和datetime之间没有区别。

也就是说,如果你碰巧把苍蝇和肉片混淆了,要尽可能地让人难以发现问题?