Go - Variables: Cửa ngõ vào thế giới魔法 lập trình

Xin chào các pháp sư lập trình tương lai! Tôi rất vui mừng được hướng dẫn các bạn trên hành trình đầy.exciting này vào thế giới lập trình Go. Hôm nay, chúng ta sẽ khám phá thế giới kỳ diệu của các biến - những khối xây dựng cơ bản của bất kỳ chương trình nào. Nào, hãy cầm lên những枝杖 (bàn phím) của mình và cùng thực hiện những phép thuật lập trình!

Go - Variables

Vậy biến là gì?

Trước khi chúng ta nhảy vào chi tiết cụ thể của Go, hãy dành một chút thời gian để hiểu biến là gì. Hãy tưởng tượng bạn có một hộp có thể chứa đồ vật. Trong lập trình, một biến giống như hộp đó - nó là một容器 chứa dữ liệu. Dữ liệu này có thể là số, văn bản, hoặc thậm chí là thông tin phức tạp hơn. Đ的美 của biến là bạn có thể thay đổi những gì bên trong hộp (vì vậy nó được gọi là "biến"), và bạn có thể sử dụng những gì bên trong ở các phần khác nhau của chương trình của bạn.

Bây giờ, hãy xem Go xử lý những容器 kỳ diệu này như thế nào!

Khai báo biến trong Go

Trong Go, việc khai báo một biến giống như tạo một hộp có nhãn cho dữ liệu của bạn. Có một vài cách để làm điều này, nhưng hãy bắt đầu với cách cơ bản nhất:

var name string = "Gopher"

Hãy phân tích này:

  • var: Từ khóa này cho Go biết chúng ta đang khai báo một biến.
  • name: Đây là tên của biến của chúng ta (nhãn trên hộp của chúng ta).
  • string: Đây là loại dữ liệu mà biến của chúng ta sẽ chứa (trong trường hợp này, văn bản).
  • "Gopher": Đây là giá trị thực tế chúng ta đang lưu trữ trong biến.

Hãy tưởng tượng như bạn đang nói, "Hey Go, tôi muốn một hộp có nhãn 'name' có thể chứa văn bản, và tôi muốn đặt 'Gopher' vào trong nó ngay bây giờ."

Khai báo kiểu tĩnh trong Go

Khai báo kiểu tĩnh giống như nói cho Go biết chính xác bạn muốn loại hộp nào trước khi bạn đặt bất cứ thứ gì vào trong nó. Đây là cách để bạn rất cụ thể về thứ mà biến của bạn có thể chứa. Dưới đây là một vài ví dụ:

var age int
var height float64
var isStudent bool

Trong các ví dụ này, chúng ta đang tạo các biến nhưng chưa đặt gì vào chúng yet. Chúng ta chỉ đang nói với Go về loại dữ liệu chúng sẽ chứa:

  • age sẽ chứa các số nguyên (integers)
  • height sẽ chứa các số thập phân (floating-point numbers)
  • isStudent sẽ chứa các giá trị true/false (booleans)

Đó như thể bạn đang nói, "Tôi cần một hộp cho các số nguyên, một hộp cho các số thập phân, và một hộp cho các câu trả lời có/không."

Khai báo kiểu động / suy luận kiểu trong Go

Bây giờ, hãy xem Go trở nên thực sự thú vị như thế nào. Nó thường có thể xác định loại hộp bạn cần chỉ bằng cách nhìn vào thứ bạn đang đặt vào trong nó! Điều này được gọi là suy luận kiểu. Hãy xem thử:

name := "Gopher"
age := 25
height := 5.9
isStudent := true

Trong các ví dụ này, chúng ta sử dụng phép toán :=. Điều này cho Go biết, "Hey, tạo một biến mới và xác định kiểu của nó dựa trên thứ tôi đang đặt vào trong nó." Go thông minh đủ để biết rằng:

  • "Gopher" có nghĩa là name nên là một string
  • 25 có nghĩa là age nên là một int
  • 5.9 có nghĩa là height nên là một float64
  • true có nghĩa là isStudent nên là một bool

Đó như thể魔法 - Go tự động tạo ra đúng loại hộp cho từng piece of data!

Khai báo biến hỗn hợp trong Go

Đôi khi, bạn có thể muốn tạo nhiều biến cùng một lúc. Go cho phép bạn làm điều này một cách gọn gàng và ngăn nắp:

var (
name string = "Gopher"
age int = 25
height float64 = 5.9
isStudent bool = true
)

Điều này giống như việc bạn đang thiết lập một kệ chứa nhiều hộp nhãn cùng một lúc. Nó rất tốt để giữ các biến liên quan cùng nhau và làm cho mã của bạn trông ngăn nắp.

Lvalues và rvalues trong Go

Bây giờ, hãy nói về một điều gì đó稍微 nâng cao hơn: lvalues và rvalues. Đừng lo lắng, nó không đáng sợ như bạn nghĩ!

  • Một lvalue (left value) là thứ có thể xuất hiện ở bên trái của một phép gán. Nó như thể nhãn trên hộp của chúng ta.
  • Một rvalue (right value) là thứ có thể xuất hiện ở bên phải của một phép gán. Nó là thứ chúng ta đặt vào trong hộp.

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

name := "Gopher"  // name là lvalue, "Gopher" là rvalue
age := 25         // age là lvalue, 25 là rvalue

Hãy nghĩ về nó như thế này: lvalue là địa chỉ nơi chúng ta lưu trữ thứ gì đó, và rvalue là thứ chúng ta đang lưu trữ.

Kết hợp tất cả lại với nhau

Hãy kết thúc với một chương trình nhỏ vui nhộn sử dụng tất cả những gì chúng ta đã học:

package main

import "fmt"

func main() {
// Khai báo kiểu tĩnh
var greeting string

// Khai báo kiểu động
name := "Gopher"

// Gán giá trị cho greeting
greeting = "Hello"

// Sử dụng các biến
fmt.Println(greeting + ", " + name + "!")

// Khai báo hỗn hợp
var (
age int = 25
height float64 = 5.9
isStudent bool = true
)

// Sử dụng các biến của chúng ta
fmt.Printf("%s is %d years old, %.1f feet tall, and it's %t that they're a student.",
name, age, height, isStudent)
}

Chương trình này sẽ xuất ra:

Hello, Gopher!
Gopher is 25 years old, 5.9 feet tall, and it's true that they're a student.

Và thế là xong! Bạn đã thực hiện thành công phép thuật lập trình đầu tiên của mình với các biến. Nhớ rằng, thực hành làm nên完美, vì vậy hãy tiếp tục thử nghiệm với các loại biến khác nhau và cách sử dụng chúng. Trước khi bạn biết, bạn sẽ trở thành một pháp sư lập trình Go!

Dưới đây là bảng tóm tắt các phương pháp khai báo biến mà chúng ta đã học:

Phương pháp Cú pháp Ví dụ Mô tả
Khai báo kiểu tĩnh var name type var age int Khai báo một biến với kiểu cụ thể
Khai báo kiểu tĩnh với khởi tạo var name type = value var name string = "Gopher" Khai báo và khởi tạo một biến với kiểu cụ thể
Khai báo kiểu động name := value age := 25 Khai báo và khởi tạo một biến, để Go suy luận kiểu
Khai báo hỗn hợp var ( ... ) Xem ví dụ trên Khai báo nhiều biến trong một khối

Chúc các bạn lập trình vui vẻ, các pháp sư Go tương lai! Nhớ rằng, mọi nhà lập trình vĩ đại đều bắt đầu từ nơi bạn đang đứng. Hãy tiếp tục thực hành, 保持好奇心, và quan trọng nhất, hãy vui vẻ với mã của bạn!

Credits: Image by storyset