Operatorii sunt baza oricărui limbaj de programare. Prin urmare, funcționalitatea limbajului Golang este incompletă fără utilizarea operatorilor. Operatorii ne permit să efectuăm diferite tipuri de operații pe operanzi. În limbajul Go, operatorii pot fi clasificați în funcție de diferitele lor funcții .

Operatori aritmetici
Acești operatori sunt utilizați pentru a efectua operații pe operanzi în limbajul Go:
- Adăugare: „+” adaugă doi operanzi. De exemplu: x+y.
- Scădere: „-” scade doi operanzi. Exemplu: xy.
- Înmulțire: „*” înmulțește doi operanzi. De exemplu: x*y.
- Diviziune: '/' împarte primul operand la al doilea operand. De exemplu: x/y.
- Rest: operatorul „%” returnează restul atunci când primul operand este împărțit la al doilea operand. De exemplu: x%y.
Notă: -, +, !, &, *, <- și ^ se mai numesc și operatori unari, iar precedența operatorilor unari este mai mare. Operatorii ++ și — provin din declarații, nu sunt expresii, deci se află în afara ierarhiei operatorilor.
De exemplu:
//Minh họa chương trình Go dùng toán tử số học
package main
import "fmt"
func main() {
p:= 34
q:= 20
// Phép cộng
result1:= p + q
fmt.Printf("Result of p + q = %d", result1)
// Phép trừ
result2:= p - q
fmt.Printf("\nResult of p - q = %d", result2)
// Phép nhân
result3:= p * q
fmt.Printf("\nResult of p * q = %d", result3)
// Division
result4:= p / q
fmt.Printf("\nResult of p / q = %d", result4)
// Modulus
result5:= p % q
fmt.Printf("\nResult of p %% q = %d", result5)
}
Rezultat:
Kết quả của p + q = 54
Kết quả của p - q = 14
Kết quả của p * q = 680
Kết quả của p / q = 1
Kết quả của p % q = 14
Operatori Relaționali
Operatorii relaționali sunt utilizați pentru a compara două valori. Să ne uităm la fiecare operator unul câte unul:
- Operatorul '=='(Egal) verifică dacă cei doi operanzi dați sunt egali sau nu. Dacă este egal, returnează adevărat. În caz contrar, returnează false. De exemplu, 5==5 va returna adevărat.
- Operatorul '!='(Nu este egal cu) verifică dacă cei doi operanzi dați sunt egali sau nu. În caz contrar, se întoarce adevărat. În caz contrar, returnează false. Acesta este complementul boolean exact al operatorului „==”. De exemplu, 5!=5 va returna false.
- Operatorul „>” (Mai mare decât) verifică dacă primul operand este mai mare decât al doilea operand. Dacă este mai mare, se întoarce adevărat. Dacă este mai mică, se întoarce false. De exemplu, 6>5 va returna adevărat.
- Operatorul „<”(mai mic decât) verifică dacă primul operand este mai mic decât al doilea operand. Dacă este mai puțin, se întoarce adevărat. Dacă nu, se întoarce false. De exemplu, <5 va reveni
- Operatorul '>='(Mai mare decât egal) verifică dacă primul operand este mai mare sau egal cu al doilea operand. Dacă este mai mare sau egal, returnează adevărat. Dacă este mai mic sau egal, returnează false. De exemplu: 5>=5 va returna true.
- Operatorul „<=”(mai mic sau egal cu) verifică dacă primul operand este mai mic sau egal cu al doilea operand. Dacă este mai mare sau egală, returnează adevărat. Dacă este mai mică sau egală, returnează false. De exemplu: <=5 va reveni și el
De exemplu:
// Minh họa chương trình Go dùng toán tử quan hệ
package main
import "fmt"
func main() {
p:= 34
q:= 20
// ‘=='(Equal To)
result1:= p == q
fmt.Println(result1)
// ‘!='(Not Equal To)
result2:= p != q
fmt.Println(result2)
// ‘<‘(less than)="" result3:="p">< q="" fmt.println(result3)="" ‘="">'(Greater Than)
result4:= p > q
fmt.Println(result4)
// ‘>='(Greater Than Equal To)
result5:= p >= q
fmt.Println(result5)
// ‘<='(less than="" equal="" to)="" result6:="p"><= q="" fmt.println(result6)="" }="">
Rezultat:
false
true
false
true
true
false
Operatori logici
Ele sunt utilizate pentru a combina două sau mai multe condiții/constrângeri sau pentru a completa evaluarea condiției inițiale luate în considerare.
- ȘI: Operatorul „&&” returnează adevărat atunci când ambele condiții luate în considerare sunt îndeplinite. În caz contrar, returnează false. De exemplu, a && b returnează adevărat atunci când ambele a și b sunt adevărate (adică diferite de zero).
- SAU: Operatorul „||” Returnează adevărat atunci când una (sau ambele) dintre condițiile luate în considerare sunt îndeplinite. În caz contrar, returnează false. De exemplu: a || b returnează adevărat dacă a sau b este adevărat (adică diferit de zero). Desigur, returnează adevărat atunci când ambele a și b sunt adevărate.
- NU logic: „!” operator Returnează adevărat atunci când condiția luată în considerare nu este îndeplinită. În caz contrar, returnează false. De exemplu: !a returnează adevărat dacă a este fals, adică atunci când a = 0.
De exemplu:
// Minh họa chương trình Go dùng toán tử logic
package main
import "fmt"
func main() {
var p int = 23
var q int = 60
if(p!=q && p<=q){ fmt.println("true")="" }="" if(p!="q" ||=""><=q){ fmt.println("true")="" }="" if(!(p="=q)){" fmt.println("true")="" }="" }="">
Rezultat:
True
True
True
Operatori pe biți
În limbajul Go, există 6 operatori bit cu bit care operează la nivel de biți sau sunt utilizați pentru a efectua operații bit cu bit. Următorii sunt operatorii pe biți:
- & (ȘI pe biți): ia două numere ca operanzi și efectuează AND pe fiecare bit din cele două numere. Rezultatul AND este doar 1 dacă ambii biți sunt 1.
- | (SAU pe biți): ia două numere ca operanzi și efectuează OR pe fiecare bit din cele două numere. Rezultatul OR este 1 dacă oricare dintre cei doi biți este 1.
- ^ (XOR pe biți): ia două numere ca operanzi și efectuează XOR pe fiecare bit din cele două numere. Rezultatul XOR este 1 dacă cei doi biți sunt diferiți.
- < (deplasare la stânga): ia două numere, deplasează biții primului operand la stânga, al doilea operand determină numărul de poziții de deplasat
- >> (deplasare la dreapta): Luați două numere, mutați biții primului operand la dreapta, al doilea operand determină numărul de poziții de mutat.
- &^ (ȘI NU): Acesta este un operator explicit pe biți.
De exemplu:
// Minh họa chương trình Go dùng toán tử bitwise
package main
import "fmt"
func main() {
p:= 34
q:= 20
// & (bitwise AND)
result1:= p & q
fmt.Printf("Result of p & q = %d", result1)
// | (bitwise OR)
result2:= p | q
fmt.Printf("\nResult of p | q = %d", result2)
// ^ (bitwise XOR)
result3:= p ^ q
fmt.Printf("\nResult of p ^ q = %d", result3)
// < (left="" shift)="" result4:="p">< 1="" fmt.printf("\nresult="" of="" p="">< 1="%d" ,"="" result4)="">> (right shift)
result5:= p >> 1
fmt.Printf("\nResult of p >> 1 = %d", result5)
// &^ (AND NOT)
result6:= p &^ q
fmt.Printf("\nResult of p &^ q = %d", result6)
}
Rezultat:
Kết quả của p & q = 0
Kết quả của p | q = 54
Kết quả của p ^ q = 54
Kết quả của p < 1="68" kết="" quả="" của="" p="">> 1 = 17
Kết quả của p &^ q = 34
Operator de atribuire
Operatorul de atribuire este utilizat pentru a atribui o valoare unei variabile. Operandul din stânga al operatorului de atribuire este o variabilă, iar operandul din dreapta al operatorului de atribuire este o valoare. Valoarea din dreapta trebuie să aibă același tip de date ca și variabila din stânga, altfel compilatorul va returna o eroare. Diferitele tipuri de operatori de atribuire sunt prezentate mai jos:
- „="(Atribuire simplă): Acesta este cel mai simplu operator de atribuire. Acest operator este folosit pentru a atribui valoarea din dreapta variabilei din stânga.
- „+=”(Atribuire suplimentară): Acest operator este o combinație a operatorilor „+” și „=”. Acest operator adaugă mai întâi valoarea curentă a variabilei din stânga la valoarea din dreapta și apoi atribuie rezultatul variabilei din stânga.
- „-=”(Atribuire minus): Acest operator este o combinație a operatorilor „-” și „=”. Acest operator scade mai întâi valoarea curentă a variabilei din stânga din valoarea din dreapta și apoi atribuie rezultatul variabilei din stânga.
- „*=”(Atribuire de multiplicare): Acest operator este o combinație a operatorilor „*” și „=”. Acest operator înmulțește mai întâi valoarea curentă a variabilei din stânga cu valoarea din dreapta și apoi atribuie rezultatul variabilei din stânga.
- „/=” (Atribuire diviziune): Acest operator este o combinație a operatorilor „/” și „=”. Acest operator împarte mai întâi valoarea curentă a variabilei din stânga la valoarea din dreapta, apoi atribuie rezultatul variabilei din stânga.
- „%="(Atribuirea restului): Acest operator este o combinație a operatorilor „%” și „=”. Acest operator ia mai întâi restul valorii curente a variabilei din stânga dată fiind valoarea din dreapta și apoi atribuie rezultatul variabilei din stânga.
- „&="(BItwise AND): Acest operator este o combinație a operatorilor „&” și „=”. Acest operator mai întâi „ȘI pe biți” valoarea curentă a variabilei din stânga la valoarea din dreapta, apoi atribuie rezultatul variabilei din stânga.
- „^=”(SAU exclusiv pe biți): Acest operator este o combinație a operatorilor „^” și „=”. Acest operator mai întâi „Bitwise Exclusive SAU” valoarea curentă a variabilei din stânga cu valoarea din dreapta și apoi atribuie rezultatul variabilei din stânga.
- „|=”(SAU inclusiv pe biți): Acest operator este o combinație a „|” operatori și „=”. Acest operator mai întâi „Bitwise Inclusive SAU” valoarea curentă a variabilei din stânga cu valoarea din dreapta și apoi atribuie rezultatul variabilei din stânga.
- „<=: Acest operator este o combinație a operatorilor < ' și '="'." Acest operator „schimbă” mai întâi valoarea curentă a variabilei din stânga cu valoarea din dreapta și apoi atribuie rezultatul variabilei din dreapta.
- „>>=": Acest operator este o combinație a operatorilor „>>” și „=”. Acest operator mai întâi „Shift Right AND” valoarea curentă a variabilei din stânga cu valoarea din dreapta, apoi atribuie rezultatul variabilei din stânga.
De exemplu:
// Minh họa chương trình Go dùng toán tử gán
package main
import "fmt"
func main() {
var p int = 45
var q int = 50
// “=”(Simple Assignment)
p = q
fmt.Println(p)
// “+=”(Add Assignment)
p += q
fmt.Println(p)
//“-=”(Subtract Assignment)
p-=q
fmt.Println(p)
// “*=”(Multiply Assignment)
p*= q
fmt.Println(p)
// “/=”(Division Assignment)
p /= q
fmt.Println(p)
// “%=”(Modulus Assignment)
p %= q
fmt.Println(p)
}
Rezultat:
50
100
50
2500
50
0
Alti operatori
- &: Acest operator returnează adresa unei variabile.
- *: Acest operator oferă un pointer către o variabilă.
- <-: Numele acestui operator este primit. Este folosit pentru a primi o valoare de la
// Minh họa chương trình sử dụng toán tử khác
package main
import "fmt"
func main() {
a := 4
// Dùng địa chỉ của toán tử (&) toán tử trỏ gián tiếp (*)
b := &a
fmt.Println(*b)
*b = 7
fmt.Println(a)
}
Rezultat:
4
7