Go - Operators: Hướng dẫn thân thiện về Phép màu Lập trình

Xin chào các pháp sư lập trình tương lai! Hôm nay, chúng ta sẽ cùng lặn sâu vào thế giới kỳ diệu của các toán tử Go. Đừng lo lắng nếu bạn chưa từng viết một dòng mã trước đây - tôi sẽ là người bạn đáng tin cậy dẫn đường cho bạn trong hành trình kỳ diệu này. Cuối cùng của bài hướng dẫn này, bạn sẽ sử dụng các toán tử như một chuyên gia!

Go - Operators

什么是运算符?

Trước khi chúng ta bắt đầu, hãy nói về toán tử thực sự là gì. Hãy tưởng tượng toán tử như những枝魔法杖 của lập trình. Chúng cho phép chúng ta thực hiện các hành động trên dữ liệu của mình, so sánh các giá trị và đưa ra quyết định trong mã của mình. Giống như một đầu bếp sử dụng các dụng cụ khác nhau để tạo ra một bữa ăn ngon, chúng ta sử dụng các toán tử khác nhau để tạo ra các chương trình tuyệt vời!

Toán tử số học: Các phù thủy toán học

Hãy bắt đầu với điều gì đó quen thuộc - toán học! Các toán tử số học trong Go hoạt động giống như các phép toán cơ bản bạn đã học ở trường. Dưới đây là bảng các kỳ quan toán học:

Toán tử Mô tả Ví dụ
+ Cộng 5 + 3 = 8
- Trừ 10 - 4 = 6
* Nhân 3 * 4 = 12
/ Chia 15 / 3 = 5
% Modulus (phần dư) 17 % 5 = 2

Hãy nhìn chúng trong hành động với một chương trình nhỏ vui vẻ:

package main

import "fmt"

func main() {
a := 10
b := 3

fmt.Println("Cộng:", a + b)
fmt.Println("Trừ:", a - b)
fmt.Println("Nhân:", a * b)
fmt.Println("Chia:", a / b)
fmt.Println("Modulus:", a % b)
}

Khi bạn chạy chương trình này, bạn sẽ thấy:

Cộng: 13
Trừ: 7
Nhân: 30
Chia: 3
Modulus: 1

Có phải đó là điều tuyệt vời? Chúng ta vừa thực hiện tất cả các phép toán cơ bản chỉ trong vài dòng mã!

Toán tử quan hệ: Các kỵ sĩ so sánh

Tiếp theo, chúng ta có các toán tử quan hệ. Những người này giống như các trọng tài trong một cuộc thi tài năng - họ so sánh hai giá trị và quyết định xem so sánh có đúng hay sai. Dưới đây là danh sách các kỵ sĩ so sánh của chúng ta:

Toán tử Mô tả Ví dụ
== Bằng 5 == 5 là đúng
!= Không bằng 5 != 3 là đúng
> Lớn hơn 7 > 3 là đúng
< Nhỏ hơn 2 < 8 là đúng
>= Lớn hơn hoặc bằng 5 >= 5 là đúng
<= Nhỏ hơn hoặc bằng 4 <= 4 là đúng

Hãy để chúng vào làm việc:

package main

import "fmt"

func main() {
x := 5
y := 10

fmt.Println("x bằng y?", x == y)
fmt.Println("x không bằng y?", x != y)
fmt.Println("x lớn hơn y?", x > y)
fmt.Println("x nhỏ hơn y?", x < y)
fmt.Println("x lớn hơn hoặc bằng y?", x >= y)
fmt.Println("x nhỏ hơn hoặc bằng y?", x <= y)
}

Chạy chương trình này sẽ cho bạn:

x bằng y? sai
x không bằng y? đúng
x lớn hơn y? sai
x nhỏ hơn y? đúng
x lớn hơn hoặc bằng y? sai
x nhỏ hơn hoặc bằng y? đúng

Như bạn thấy, mỗi so sánh đưa ra kết quả đúng hoặc sai. Đó là sức mạnh của các toán tử quan hệ!

Toán tử logic: Các nhà quyết định

Toán tử logic giống như những ngườielder thông thái trong làng lập trình của chúng ta. Họ giúp chúng ta đưa ra các quyết định phức tạp bằng cách kết hợp nhiều điều kiện. Dưới đây là các nhà quyết định logic của chúng ta:

Toán tử Mô tả Ví dụ
&& AND true && false = false
|| OR true || false = true
! NOT !true = false

Hãy nhìn chúng trong hành động:

package main

import "fmt"

func main() {
isSunny := true
isWarm := false

fmt.Println("Có phải trời nắng và ấm?", isSunny && isWarm)
fmt.Println("Có phải trời nắng hoặc ấm?", isSunny || isWarm)
fmt.Println("Có phải không nắng?", !isSunny)
}

Điều này sẽ đầu ra:

Có phải trời nắng và ấm? sai
Có phải trời nắng hoặc ấm? đúng
Có phải không nắng? sai

Các toán tử này rất mạnh mẽ để đưa ra quyết định trong các chương trình của bạn. Chúng giống như não của mã của bạn!

Toán tử bit: Các bạn nhị phân

Bây giờ, chúng ta đang bước vào thế giới của phép thuật nhị phân với các toán tử bit. Những toán tử này hoạt động trực tiếp trên các biểu diễn nhị phân của số. Chúng có thể phức tạp, nhưng biết về chúng có thể rất hữu ích! Dưới đây là các bạn nhị phân của chúng ta:

Toán tử Mô tả
& Bitwise AND
| Bitwise OR
^ Bitwise XOR
<< Trôi左边
>> Trôi phải

Dưới đây là một ví dụ đơn giản:

package main

import "fmt"

func main() {
a := 5  // nhị phân: 101
b := 3  // nhị phân: 011

fmt.Printf("a & b = %d\n", a & b)
fmt.Printf("a | b = %d\n", a | b)
fmt.Printf("a ^ b = %d\n", a ^ b)
fmt.Printf("a << 1 = %d\n", a << 1)
fmt.Printf("b >> 1 = %d\n", b >> 1)
}

Điều này sẽ đầu ra:

a & b = 1
a | b = 7
a ^ b = 6
a << 1 = 10
b >> 1 = 1

Đừng lo lắng nếu điều này có vẻ hơi rối rắm ban đầu. Các thao tác bit giống như học một ngôn ngữ mới - nó cần thời gian và sự thực hành!

Toán tử gán: Các trợ lý đặt giá trị

Toán tử gán giống như những trợ lý hữu ích trong mã của chúng ta. Chúng giúp chúng ta đặt và cập nhật giá trị nhanh chóng. Dưới đây là đội ngũ đặt giá trị của chúng ta:

Toán tử Mô tả Ví dụ
= Gán đơn giản x = 5
+= Cộng và gán x += 3 là tương đương với x = x + 3
-= Trừ và gán x -= 2 là tương đương với x = x - 2
*= Nhân và gán x = 4 là tương đương với x = x 4
/= Chia và gán x /= 2 là tương đương với x = x / 2
%= Modulus và gán x %= 3 là tương đương với x = x % 3

Hãy nhìn chúng trong hành động:

package main

import "fmt"

func main() {
x := 10

fmt.Println("X ban đầu:", x)

x += 5
fmt.Println("Sau x += 5:", x)

x -= 3
fmt.Println("Sau x -= 3:", x)

x *= 2
fmt.Println("Sau x *= 2:", x)

x /= 4
fmt.Println("Sau x /= 4:", x)

x %= 3
fmt.Println("Sau x %= 3:", x)
}

Điều này sẽ đầu ra:

X ban đầu: 10
Sau x += 5: 15
Sau x -= 3: 12
Sau x *= 2: 24
Sau x /= 4: 6
Sau x %= 3: 0

Các toán tử này là những捷径 tuyệt vời làm cho mã của chúng ta sạch sẽ và hiệu quả hơn!

Toán tử đặc biệt: Các con kỳ lân duy nhất

Go cũng có một số toán tử đặc biệt không phù hợp vào các thể loại khác. Những con kỳ lân duy nhất này là:

Toán tử Mô tả
& Địa chỉ của
* Con trỏ đến
<- Toán tử nhận

Những khái niệm này phức tạp hơn và chúng ta sẽ khám phá chúng trong các bài học tương lai. Hiện tại, chỉ cần biết rằng chúng tồn tại và đang chờ đợi bạn khám phá phép thuật của chúng!

Trình tự ưu tiên của các toán tử trong Go: Hierarchy of Power

Giống như trong toán học, Go có một thứ tự cụ thể để thực hiện các thao tác. Điều này được gọi là precedence của toán tử. Dưới đây là một phiên bản đơn giản của precedence của Go, từ cao đến thấp:

  1. Parentheses ()
  2. Toán tử unary (!, -, +, &, *, <-)
  3. Toán tử nhân, chia, modulus (*, /, %)
  4. Toán tử cộng và trừ (+, -)
  5. Toán tử so sánh (==, !=, <, <=, >, >=)
  6. Toán tử logic AND (&&)
  7. Toán tử logic OR (||)
  8. Toán tử gán (=, +=, -=, *=, /=, %=)

Nhớ rằng, khi nghi ngờ, hãy sử dụng parentheses để làm rõ ý định của bạn!

Và thế là bạn đã có nó, các học trò lập trình trẻ! Chúng ta đã cùng nhau hành trình qua vùng đất của các toán tử Go, từ các toán tử số học quen thuộc đến các toán tử bit bí ẩn. Nhớ rằng, việc trở thành một.master của các toán tử này cần sự thực hành, vì vậy đừng nản lòng nếu mọi thứ không ngay lập tức trở nên rõ ràng. Hãy tiếp tục lập trình, hãy thử nghiệm, và sớm bạn sẽ casts các pháp thuật lập trình như một true Go wizard!

Credits: Image by storyset