MQL4 könyv   Operátorok    Értékadó operátor

Értékadó operátor

Az értékadó operátor a legegyszerűbb és a legtöbbször használt operátor.

Az értékadó operátor formátuma

Értékadó operátor egy olyan rekord, ami ”=„ (egyenlőségjel)  karaktert tartalmaz. Ennek az egyenlőségjelnek a bal oldalán megadjuk egy változó nevét, a jobb oldalán megadunk egy kifejezést. Az értékadó operátort ”;” (pontosvessző) fejezi be.

 Változó = Kifejezés; // Értékadó operátor

Az értékadó operátort a program szövegében az egyenlőségjel jelenlétéből lehet felismerni. A kifejezésben megadható: egy állandó, egy változó, egy függvényhívás vagy egy kifejezés.

Az értékadó operátor végrehajtása

Figyelem!

Számítsd ki a kifejezés értékét az egyenlőségjeltől jobbra és add a kapott értéket az egyenlőségjel bal oldalán lévő változónak.

Az értékadó operátor, mint bármilyen másik operátor, végrehajtható. Ez azt jelenti, hogy a rekordot, ami alkotja az operátort, a végrehajtási szabályai szerint végrehajtják. Miközben végrehajtjuk az operátort, a jobb oldali rész kiszámított értékét adjuk az egyenlőségnek bal oldalán levő változónak. A értékadó operátor végrehajtásának eredményeképpen a bal oldali részben lévő változó egy új értéket vesz fel, ez az érték ugyanaz vagy más is lehet, mint a változó előző értéke. Az értékadó operátor jobb oldalán lévő kifejezést a műveletek sorrendje szerint kiszámoljuk ki (lásd: Műveletek és kifejezések).

Példák értékadó operátorokra

Egy értékadó operátorban lehetőség van a változó típusát deklarálni az egyenlőségjel bal oldalán:

 int In = 3; // The constant value is assigned to variable In
 double Do = 2.0; // The constant value is assigned to variable Do
 bool Bo = true; // The constant value is assigned to variable Bo
 color Co = 0x008000; // The constant value is assigned to variable Co
 string St = "sss"; // The constant value is assigned to variable St
 datetime Da= D'01.01.2004';// The constant value is assigned to variable Da

A korábban már deklarált (létrehozott) változókat használhatjuk egy értékadó operátorban anélkül, hogy meghatároznánk a típusukat.

 In = 7; // The constant value is assigned to variable In
 Do = 23.5; // The constant value is assigned to variable Do
 Bo = 0; // The constant value is assigned to variable Bo

Egy értékadó operátorban a változó típusát nem deklarálhatjuk az egyenlőségjel jobb oldalán:

 In = int In_2; // Variable type may not be declared in the right part
Do = double Do_2; // Variable type may not be declared in the right part

Egy értékadó operátorban egy változó típusát nem szabad ismételten deklarálni.

 int In; // Declaration of the type of variable In
int In = In_2; // The repeated declaration of the type of the variable (In) is not allowed

Példák arra, hogy hogyan használjuk a felhasználói és beépített függvényeket a jobb oldalon:

 In = My_Function(); // The value of user-defined function is assigned to variable In
 Do = Gipo(Do1,Do1); // The value of user-defined function is assigned to variable Do
 Bo = IsConnected(); // The value of standard function is assigned to variable Bo
 St = ObjectName(0); // The value of standard function is assigned to variable St
 Da = TimeCurrent(); // The value of standard function is assigned to variable Da

Példa a jobb oldalon kifejezések használatára:

 In = (My_Function()+In2)/2; // The variable In is assigned
 // ..with the value of expression
 Do = MathAbs(Do1+Gipo(Do2,5)+2.5); // The variable Do is assigned 
 // ..with the value of expression

Az értékadó operátorokban lévő számításokban a typecasting (tipusmódosítás) szabályai alkalmazandók (lásd Typecasting).

Példák a rövid alakban írt értékadó operátorra

Az MQL4-ben az értékadó operátor írásának rövidített formáját is használják. (Az értékadó operátor e formáit lásd: Műveletek és  kifejezések). Az operátorok rövidített alakjára ugyanazok a szabályok és korlátozások vonatkoznak. A értékadó operátorok rövid fajtáját a jobb megjelenítés miatt használják a kódban. A programozónak lehetősége van az értékadó operátor mindkét formájának az alkalmazására. Bármelyik, a rövid vagy a teljes formátum alkalmazása esetén az operátor végrehajtásának az eredménye változatlan.
 In /= 33; // Short form of the assignment operator
 In = In/33; // Full form of the assignment operator
 
 St += "_exp7"; // Short form of the assignment operator
 St = St + "_exp7"; // Full form of the assignment operator