在循环后面声明变量还是在循环里面声明变量? - 页 8

 
Alexey Viktorov:
不可能,绝对不对。 仅举一例。在循环中,你通过未平仓的头寸进行查看。你得到一张仓单,你用它来获取仓单的其他属性。有两种变体,要么在获取位置属性的每个函数中插入PositionGetTicket(i),要么把它写在一个变量中,使用它。但当循环退出后,就不需要这个票了。为什么要在OnTick()函数的主体中声明这个变量,或者更有趣的是在全局层面声明?

也许我说得不太对....

当然,OnTick()中不需要它们。我不知道把循环(和其中需要的变量)放到函数中是否正确?

P.S. 一般来说,任何一个程序员都应该知道哪里需要一个变量,并独立确定其可见区域......。
 

一般来说,string plus和mcl是不同的。在µl中,它是基本类型,显然有更多的优化空间。因此,进行这样的轴线式比较可能是错误的。虽然我赞成用加号来统一,但它不应该存在,所以不应该用µl来表示。

 
Vict:

一般来说,string plus和mcl是不同的。在μl中,毕竟是一个基本类型,显然有更多的优化空间。因此,进行这种笨拙的比较可能是不正确的。虽然我赞成用加号统一,但它不应该出现在那里,所以也不应该出现在µl中。

你会说白俄罗斯语吗?不是吗?为什么?白俄罗斯语明显更接近于古斯拉夫语。我们要讲俄语而不是古斯拉夫语吗?显然,有必要使用白俄罗斯语...

我又要发火了......但是,SI和MQL再一次是不同的语言!尽管有一个事实是基于其他....。

 
Сергей Таболин:

也许我说得不太对....

当然,OnTick()中不需要它们。我不知道,也许把循环(和那里需要的变量)放到函数中是对的?

P.S. 而在一般情况下,任何一个程序员都应该知道 他需要一个变量的地方,并通过自己......,确定其可见区域。

这里是金句。

而把一个循环放在一个外部函数 中,如果它在代码中只使用一次,则取决于宗教允许的情况。现在很多人坚持使用OOP,把每件小事都放到类或宏里。这样的时尚已经成为流行。

 
Alexey Viktorov:

而把循环放到一个外部函数 中,如果在代码中只使用一次,那就是一个宗教问题。

在你的词汇中加入一个词--这个宗教被称为SOLID

 

对于那些相信聪明的编译器的人。脚本的部分代码显示如下。

源代码在附件中。

string predictor_names[]={"Time_RSI_ZZ_00","rPeresek_Down","Time_ZZ_02","Speed_1_ZZ_Proc_04"...}

struct sRule
  {
   int               predictor_id;
   bool              more_eq; 
   double            value; 
  };
//Лист дерева(набор правил)
struct sLeaf_r
  {
   int               rules_count;              //Сколько правил
   sRule             rules[32];  //Все правила листа
   double            result_leaf;//Результат листа
  };
//Количество всех листьев 164912
sLeaf_r           leaf_rs[]=
  {
     {3,{{0,0,21.5},{1,1,0.5},{2,0,15.5}},0.0},
     {5,{{0,0,21.5},{1,1,0.5},{2,1,15.5},{3,1,6.5},{4,0,-4.5}},-1.0},
......
......
//Очень много данных
  }

void OnStart()
  {

  }

这些结构是完全静态的,leaf_rs 数组可以完全被丢弃。OnStart() 是空的。因此,编译后的文件大小几乎为2Mbytes。

附加的文件:
test_3.zip  418 kb
 
Igor Makanu:

在你的词汇中添加词语--这种宗教被称为SOLID

伊戈尔,你父亲比我大多少?我认为不超过5年。他是否仍然能够增加他的词汇量?还是你太年轻了?不要在我的话中寻找隐藏的含义。
 
Alexey Viktorov:

........

而把循环放到一个外部函数 中,如果在代码中只使用一次,那就是一个宗教问题。现在很多人都喜欢OOP,把每件小事都放到类或宏里。现在是一种时尚。

我以前曾问过这个问题,但从未得到过答案。确切地说,对于这种情况,为了不使用 "他们 "的宗教,是否有一个标准的方法来破坏一个变量?

不过,我个人并不喜欢在循环中声明变量。我更喜欢在它之前申报,但之后如何销毁它们呢?......这就是为什么这个功能。退出后,内部变量被销毁。(???)

对于OOP,我不能说什么。我只是不明白为什么需要这样做 )))))))过时的,可能是))))))))))

 
Сергей Таболин:

我以前问过一次,但没有回音。确切地说,对于这种情况,为了不使用 "他们 "的宗教,是否有一个标准的方法来破坏一个变量?

不过我个人不喜欢在循环中声明变量。我更喜欢在它之前申报,但之后如何销毁它们呢?......这就是为什么这个功能。退出后,内部变量被销毁。(???)

对于OOP,我不能说什么。我只是不明白为什么需要这样做 )))))))过时的,可能是))))))))))

我不明白,是这样吗?

if (true) {
        Type var;
        for (...) {
                var.use();
        }
}

我怀疑他们不知道。

 
Alexey Viktorov:
伊戈尔,你父亲是不是比我大很多?

1953-2008 父亲

1953-2019年 岳父

原因: