É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