Операторууд
Оператор гэдэг нь утгуудад үйлдэл хийдэг тэмдэгт юм. Математикийн нэмэх, хасах, харьцуулах, логик нийлүүлэх зэрэг бүхий л үйлдлийг операторуудаар илэрхийлнэ. Go-ийн операторуудыг мэдснээр тооцоолол хийж, нөхцөл шалгаж, программыг удирдах чадвар эзэмшинэ.
Арифметик операторууд
Тооцоолол хийх үндсэн операторууд:
package main
import "fmt"
func main() {
a := 17
b := 5
fmt.Println(a + b) // 22 — нэмэх
fmt.Println(a - b) // 12 — хасах
fmt.Println(a * b) // 85 — үржүүлэх
fmt.Println(a / b) // 3 — хуваах (бүхэл тоонд үлдэгдэл хасагдана)
fmt.Println(a % b) // 2 — үлдэгдэл (modulo)
}
Гаралт:
22
12
85
3
2
/ операторт анхаарах хэрэгтэй: хоёул бүхэл тоо бол үр дүн нь бүхэл тоо болно — 17 / 5 = 3, 3.4 биш. Float хуваалт хийхийн тулд хамгийн ядаж нэг нь float64 байх ёстой:
package main
import "fmt"
func main() {
a := 17.0
b := 5.0
fmt.Println(a / b) // 3.4
// Эсвэл хөрвүүлж хуваах
x, y := 17, 5
fmt.Println(float64(x) / float64(y)) // 3.4
}
Харьцуулалтын операторууд
Хоёр утгыг харьцуулж bool үр дүн (true/false) өгнө:
package main
import "fmt"
func main() {
x := 10
y := 20
fmt.Println(x == y) // false — тэнцүү эсэх
fmt.Println(x != y) // true — тэнцүү биш эсэх
fmt.Println(x < y) // true — бага эсэх
fmt.Println(x > y) // false — их эсэх
fmt.Println(x <= y) // true — бага тэнцүү эсэх
fmt.Println(x >= y) // false — их тэнцүү эсэх
}
Гаралт:
false
true
true
false
true
false
Харьцуулалтын операторууд нь if нөхцөл, for давталт зэрэгт маш их хэрэглэгддэг.
Логик операторууд
bool утгуудыг нийлүүлэх операторууд:
package main
import "fmt"
func main() {
isStudent := true
hasID := false
age := 20
// && — "ба" (AND): хоёул true байх ёстой
fmt.Println(isStudent && hasID) // false
fmt.Println(isStudent && age > 18) // true
// || — "эсвэл" (OR): аль нэг нь true байхад хангалттай
fmt.Println(isStudent || hasID) // true
fmt.Println(false || false) // false
// ! — "үгүйсгэл" (NOT): true → false, false → true
fmt.Println(!isStudent) // false
fmt.Println(!hasID) // true
}
Гаралт:
false
true
true
false
false
true
Оноох операторууд
Хувьсагчийн утгыг өөрчлөх товчилсон бичиглэлүүд:
package main
import "fmt"
func main() {
score := 50
score += 10 // score = score + 10 → 60
fmt.Println(score)
score -= 5 // score = score - 5 → 55
fmt.Println(score)
score *= 2 // score = score * 2 → 110
fmt.Println(score)
score /= 11 // score = score / 11 → 10
fmt.Println(score)
score %= 3 // score = score % 3 → 1
fmt.Println(score)
}
Гаралт:
60
55
110
10
1
Нэмэгдэх ба хасагдах операторууд
Go-д ++ (нэмэгдэх) ба -- (хасагдах) операторууд байдаг:
package main
import "fmt"
func main() {
count := 0
count++ // count = count + 1
fmt.Println(count) // 1
count++
fmt.Println(count) // 2
count-- // count = count - 1
fmt.Println(count) // 1
}
Go-д ++ ба -- нь зөвхөн statement (тусдаа мөр) хэлбэрт ажилладаг — x = count++ гэх мэт expression дотор ашиглах боломжгүй. Энэ нь C, JavaScript зэрэг хэлнүүдийн нийтлэг алдааны эх үүсвэрийг арилгасан зөв шийдэл.
Битийн операторууд
Тоонуудыг бит хэмжээнд шууд боловсруулах операторууд:
package main
import "fmt"
func main() {
a := 0b1010 // 10 (binary)
b := 0b1100 // 12 (binary)
fmt.Printf("%04b = %d\n", a&b, a&b) // AND: 0b1000 = 8
fmt.Printf("%04b = %d\n", a|b, a|b) // OR: 0b1110 = 14
fmt.Printf("%04b = %d\n", a^b, a^b) // XOR: 0b0110 = 6
fmt.Printf("%04b = %d\n", a<<1, a<<1) // LEFT SHIFT: 0b10100 = 20
fmt.Printf("%04b = %d\n", a>>1, a>>1) // RIGHT SHIFT: 0b0101 = 5
}
Битийн операторуудыг системийн програмчлал, сүлжээний протокол, тэмдэглэгээ (flag) зохицуулахад ашиглана. Эхлэгчдэд энэ хэсгийг дараа нь буцаж үзэх нь хангалттай.
Дараагийн хичээлд:
if, else if, else ашиглан нөхцөл шалгаж, программынхаа гүйцэтгэлийн чиглэлийг удирдаж сурна. Нөхцөл бол бүх програмчлалын хэлний хамгийн чухал ойлголтуудын нэг.