1 Cấu trúc cơ bản của một chương trình Go
Một chương trình Go bắt đầu với việc khai báo một package, tiếp theo là việc import các package cần thiết, các khai báo biến ở mức package, hằng số, kiểu dữ liệu, và cuối cùng là các hàm nằm trong package đó. Lấy ví dụ với "Hello World", dưới đây là một cấu trúc cơ bản điển hình của một chương trình Go:
package main // Khai báo package main, chỉ định một chương trình có thể thực thi độc lập
import "fmt" // Import package fmt, chứa các hàm nhập và xuất dữ liệu
// Hàm main, điểm khởi đầu của chương trình
func main() {
fmt.Println("Hello, World!") // Xuất dòng chữ Hello World ra terminal
}
Khái niệm và Mục đích của Packages
Trong ngôn ngữ Go, một package là tập hợp của nhiều tệp nguồn Go và được sử dụng như một cơ chế tái sử dụng mã nguồn ở mức cao. Mỗi tệp trong Go thuộc về một package, và tên package nên giống với tên thư mục chứa nó.
Quy tắc đặt tên cho các Tệp mã nguồn
Việc đặt tên cho các tệp mã nguồn Go thường tuân theo viết thường và không chứa khoảng trắng hoặc ký tự đặc biệt, ví dụ như hello_world.go
. Tên tệp nguồn không cần phải giống với tên package, nhưng câu lệnh khai báo package trong tất cả các tệp thuộc cùng một package phải có các tên package nhất quán.
Sử dụng Comments trong Chương trình
Trong ngôn ngữ Go, comment có hai dạng: comment trên một dòng bắt đầu bằng //
và comment trên nhiều dòng bắt đầu bằng /*
và kết thúc bằng */
. Nội dung của comment sẽ không bị biên dịch bởi trình biên dịch.
// Đây là comment trên một dòng
/*
Đây là comment trên nhiều dòng
trải dài qua nhiều
dòng.
*/
2 Hàm main và Điểm khởi đầu của Chương trình
Trong một chương trình Go, hàm main
được thiết kế đặc biệt để làm điểm khởi đầu của chương trình. Hệ thống Go tự động gọi hàm main
trong package main để bắt đầu thực thi chương trình.
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
Hàm main
không yêu cầu tham số và không có giá trị trả về. Sau khi thực thi hàm main
, chương trình sẽ tự động kết thúc. Nếu cần trả về một mã trạng thái khi chương trình kết thúc, nên sử dụng hàm os.Exit
.
3 Xây dựng và Chạy chương trình
Sử dụng lệnh go build
Chạy lệnh go build
sẽ biên dịch tệp mã nguồn và tạo ra một tệp thực thi. Trong terminal, di chuyển đến thư mục chứa tệp nguồn, sau đó nhập lệnh sau:
go build hello_world.go
Sau khi thực thi thành công, bạn sẽ thấy một tệp thực thi có tên hello_world
(hoặc hello_world.exe
trên Windows) trong thư mục hiện tại.
Sử dụng lệnh go run
Lệnh go run
biên dịch và chạy chương trình Go, rất tiện lợi cho việc kiểm thử và phát triển nhanh chóng. Để chạy chương trình Hello World, bạn có thể nhập:
go run hello_world.go
Sau khi thực thi lệnh này, bạn sẽ ngay lập tức thấy dòng "Hello, World!" được xuất ra trong terminal.
4. Đầu ra của Chương trình
Trong chương trình Go, hàm Println
do package fmt
cung cấp có thể được sử dụng để xuất thông tin ra terminal. Dưới đây là một ví dụ mã nguồn xuất dữ liệu "Hello, World!" ra terminal:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!") // Xuất ra terminal
}
Sau khi thực thi chương trình, kết quả có thể được xem trực tiếp trong terminal. Ngoài ra, các yêu cầu đầu ra phức tạp hơn có thể được đạt được bằng cách sử dụng package log
hoặc bằng cách trực tiếp thao tác trên luồng đầu ra tiêu chuẩn os.Stdout
.
import "os"
os.Stdout.WriteString("Hello, World!\n") // Thao tác trực tiếp trên luồng đầu ra tiêu chuẩn
import "log"
log.Println("Hello, World!") // Sử dụng package log để xuất dữ liệu, bao gồm thông tin về ngày giờ
Các phương pháp đầu ra cơ bản này là cách tiếp xúc quan trọng với người dùng và thường được sử dụng để gỡ lỗi chương trình để in ra thông tin quan trọng.