2 sonuç döndüren işlev? - sayfa 3

 
gordon :
İşte basitleştirilmiş bir açıklama -> https://www.mql5.com/en/forum/117210 . Diziler, MQL4'te her zaman referansla iletilir.

Evet teşekkürler. Ama sorduğum gibi, bu diğer dilde olmadığı anlamına mı geliyor? MQ/MT4 veya başka bir dil yapısını kullanmanın tek yolu bu olsaydı, o zaman bunu belirtmekte zorlanmayacaklarını varsayıyorum.

Sanırım o yazıda dediğin gibi 'teknik detayları' soruyorum. İhtiyaçtan değil meraktan.

Sözdizimine gelince, ticaret stratejilerini programlamak için kullanılan THE MQL5 dili, bazı özellikler dışında C++ programlama diline çok benzer:

  • adres aritmetiği yok;
  • git operatörü yok;
  • anonim bir numaralandırma bildirilemez;
  • sınıfların ve yapıların yapıcıları parametreye sahip olamaz;
  • çoklu kalıtım yok.

Bunun gibi, C++'da bunun tam tersinin doğru olacağını ima edebilirim... Yine de teşekkürler, Gordon.

 
Matutin :

Kusura bakmayın ama bu "teknik" bir yanıt değil :) Neden değişkeni global değişken yerine referansa göre iletmenin daha iyi olduğunu söyleyebilir misiniz?

Tekrar etmemeyi tercih ettiğim birçok neden, bunun yerine buraya -> https://en.wikipedia.org/wiki/Global_variable ve buraya -> http://www.c2.com/cgi/wiki? GlobalVariablesAreBad (daha fazlasını Google'da bulabilirsiniz... Bu yaygın olarak kabul edilen bir kavram ve internette çok fazla bilgi var).

 
cameofx :

[...] bu, başka bir dilde olmadığı anlamına mı geliyor? [...]

Hiçbir şey ifade etmez, ancak özellikle hem C hem de C++ dizilerinde başvuru yoluyla da iletilir (teknik olarak dizinin ilk öğesine bir işaretçi iletilir, bu işaretçi değere göre iletilir).
 
gordon :

Tekrar etmemeyi tercih ettiğim birçok neden, bunun yerine buraya -> https://en.wikipedia.org/wiki/Global_variable ve buraya -> https://www.mql5.com/go?link= başvuracağım. http://www.c2.com/cgi/wiki?GlobalVariablesAreBad (daha fazlası için Google'a gidebilirsiniz... Bu yaygın olarak kabul edilen bir kavramdır ve internette çok fazla bilgi vardır).


Çok ilginç ! Ne yazık ki, EA'nın parametrelere ve bazen çok fazlasına ihtiyacı vardır, bu yüzden onlardan kaçınamayız ve https://www.mql5.com/go?link=http://www.c2'de belirtilen tüm nedenlerle ilgilenmemiz gerekir. com/cgi/wiki?KüreselDeğişkenlerKötü

GlobalVariable için adlandırma kuralları kullanıyorum: Bazı hataları yönetmek ve önlemek çok daha kolay.

Teşekkürler Gordon.

 
Matutin :

Çok ilginç ! Ne yazık ki, EA parametrelere ihtiyaç duyuyor ve bazen çok fazla, bu yüzden onlardan kaçınamayız [...]

Dış etkenler gerçekten kaçınılmazdır. Kapsam olarak global olmalarına rağmen, global değişkenlerle aynı değildirler ( GV'ler ile karıştırılmamalıdır); özellikle - değerlerinin kod yoluyla değiştirilmesi önerilmez, bu nedenle işlevler arasında bilgi iletmek için kullanılmamalıdırlar (buraya bakın -> https://www.mql5.com/en/forum/123535 ).


GlobalVariable için adlandırma kuralları kullanıyorum: Bazı hataları yönetmek ve önlemek çok daha kolay.

Bu tartışma, global kapsamda tanımlanan değişkenler hakkındadır (start(), init(), deinit() özel fonksiyonunun dışında bildirilen) ve GV'ler hakkında değil... İkisini karıştırmayın.
 

Merak ediyorum: Birden çok sonuç döndüren işlevleri olan HERHANGİ bir programlama dili var mı?

 

belki bir işlevi , çağrı işlevinde tekrar birleştirebileceğiniz şekilde birleştirerek iki değeri döndürmesi için kandırabilirsiniz.

bunun gibi bir şey

a = 10;

b = 20;

a = a*1000

c = a+b // 10020

dönüş(c);

sonra arama işlevinde

b = c%1000 // 20

a = cb/1000 // 10

 
SDC :

belki bir işlevi, çağrı işlevinde tekrar birleştirebileceğiniz şekilde birleştirerek iki değeri döndürmesi için kandırabilirsiniz.

bunun gibi bir şey

[...]
Belki değil.
 

neden ?

 
SDC :

neden ?

Olmayan bir sorunu neden çözelim? Neden tekerleği yeniden icat ettin? Neden yalnızca sınırlı durumlarda işe yarayacak belirsiz bir kod oluşturuyorsunuz?