1 Tổng quan về Toán tử trong Golang
Trong ngôn ngữ Go, toán tử được sử dụng để thực hiện các hoạt động mã chương trình, bao gồm các hoạt động số học, so sánh quan hệ, hoạt động logic và nhiều hơn nữa. Các toán tử khác nhau tương ứng với các chức năng và kịch bản sử dụng khác nhau. Hiểu và nắm vững những toán tử này là nền tảng cho lập trình hiệu quả.
2 Toán tử Số học
Ngôn ngữ Go cung cấp một tập hợp các toán tử số học:
- Cộng (+): Phép cộng
- Trừ (-): Phép trừ
- Nhân (*): Phép nhân
- Chia (/): Phép chia
- Dư (%): Phép chia lấy dư
Ví dụ:
package main
import "fmt"
func main() {
// Phép cộng
sum := 10 + 5
fmt.Println("10 + 5 =", sum) // Xuất ra 15
// Phép trừ
diff := 10 - 5
fmt.Println("10 - 5 =", diff) // Xuất ra 5
// Phép nhân
prod := 10 * 5
fmt.Println("10 * 5 =", prod) // Xuất ra 50
// Phép chia
quot := 10 / 5
fmt.Println("10 / 5 =", quot) // Xuất ra 2
// Phép chia lấy dư
rem := 10 % 5
fmt.Println("10 % 5 =", rem) // Xuất ra 0
}
3 Toán tử Logic
Các toán tử logic trong ngôn ngữ Go được sử dụng để kết nối nhiều điều kiện (thường được sử dụng cho giá trị boolean). Nó bao gồm ba loại: AND (&&), OR (||) và NOT (!).
3.1 AND (&&)
Khi tất cả các điều kiện đều đúng, kết quả của phép vận hành "AND" là đúng.
Ví dụ:
package main
import "fmt"
func main() {
fmt.Println(true && true) // Xuất ra true
fmt.Println(true && false) // Xuất ra false
fmt.Println(false && false) // Xuất ra false
// Kết quả là true chỉ khi cả hai điều kiện đều đúng
}
3.2 OR (||)
Nếu ít nhất một điều kiện là đúng, kết quả của phép vận hành "OR" là đúng.
Ví dụ:
package main
import "fmt"
func main() {
fmt.Println(true || true) // Xuất ra true
fmt.Println(true || false) // Xuất ra true
fmt.Println(false || false) // Xuất ra false
// Kết quả là true nếu ít nhất một điều kiện là đúng
}
3.3 NOT (!)
Được sử dụng để đảo ngược giá trị boolean của một điều kiện.
Ví dụ:
package main
import "fmt"
func main() {
fmt.Println(!true) // Xuất ra false
fmt.Println(!false) // Xuất ra true
// Đảo ngược giá trị boolean
}
4 Toán tử So sánh
Các toán tử so sánh trong ngôn ngữ Go được sử dụng để so sánh hai biến hoặc giá trị:
- Bằng với (==)
- Không bằng (!=)
- Lớn hơn (>)
- Nhỏ hơn (<)
- Lớn hơn hoặc bằng (>=)
- Nhỏ hơn hoặc bằng (<=)
Kết quả của các phép so sánh là một giá trị boolean: true
hoặc false
.
5 Toán tử Bitwise
Trong Go, các toán tử bitwise cho phép chúng ta trực tiếp thao tác trên các bit nhị phân của dữ liệu:
- Bitwise AND (&)
- Bitwise OR (|)
- Bitwise XOR (^)
- Dịch bit sang trái (<<)
- Dịch bit sang phải (>>)
Các toán tử bitwise chủ yếu được sử dụng trong lập trình cấp thấp, chẳng hạn như các hoạt động phần cứng trực tiếp, mã hóa và các kịch bản khác.
6 Toán tử Gán
Toán tử gán được sử dụng để gán giá trị cho biến. Trong ngôn ngữ Go, có nhiều dạng của toán tử gán:
- Gán đơn (=)
- Gán cộng (+=)
- Gán trừ (-=)
- Gán nhân (*=)
- Gán chia (/=)
- Gán phần dư (%=)
Những toán tử này làm cho mã chương trình trở nên ngắn gọn hơn. Ví dụ, x += 1
tương đương với x = x + 1
.
7 Toán tử Đặc biệt
7.1 Toán tử Tăng (++) và Giảm (--)
Toán tử tăng (++) và toán tử giảm (--) được sử dụng để cộng thêm 1 và trừ đi 1 từ giá trị của một biến, tương ứng. Chúng là các toán tử duy nhất trong ngôn ngữ Go có thể tác động trực tiếp lên biến chính nó (không phải trên một biểu thức).
package main
import "fmt"
func main() {
x := 1
x++
fmt.Println("x++ =", x) // Xuất ra 2
y := 10
y--
fmt.Println("y-- =", y) // Xuất ra 9
}
Chú ý rằng trong ngôn ngữ Go, x++
hoặc x--
không thể là một phần của biểu thức. Ví dụ, z := x++
không được phép.
7.2 Chuyển đổi Kiểu Dữ Liệu
Ngôn ngữ Go là ngôn ngữ tĩnh, có nghĩa là khi một biến được khai báo, kiểu dữ liệu của nó không thể thay đổi. Do đó, đôi khi cần chuyển đổi một biến từ một kiểu sang một kiểu khác. Go không có chuyển đổi kiểu tự động; cần phải chuyển đổi kiểu tường minh.
Ví dụ:
package main
import (
"fmt"
)
func main() {
var i int = 42
fmt.Println(float64(i)) // Chuyển int sang float64
var f float64 = 3.14
fmt.Println(int(f)) // Chuyển float64 sang int, phần thập phân sẽ bị loại bỏ
}
Khi thực hiện chuyển đổi kiểu dữ liệu, quan trọng để đảm bảo rằng dữ liệu an toàn trong quá trình chuyển đổi, ví dụ như sự mất mát độ chính xác có thể xảy ra khi chuyển đổi một số thực sang số nguyên.