Hướng dẫn: Bắt đầu với Go
Trong hướng dẫn này, bạn sẽ được giới thiệu ngắn gọn về lập trình Go. Trong quá trình đó, bạn sẽ:
- Cài đặt Go (nếu bạn chưa cài).
- Viết một số mã "Hello, world" đơn giản.
- Dùng lệnh
gođể chạy mã của bạn. - Dùng công cụ khám phá gói Go để tìm các gói bạn có thể dùng trong mã của mình.
- Gọi các hàm từ một module bên ngoài.
Điều kiện tiên quyết
- Một số kinh nghiệm lập trình. Mã ở đây khá đơn giản, nhưng sẽ hữu ích nếu bạn biết về hàm.
- Công cụ soạn thảo mã. Bất kỳ trình soạn thảo văn bản nào bạn có đều dùng được. Hầu hết các trình soạn thảo đều hỗ trợ tốt Go. Phổ biến nhất là VSCode (miễn phí), GoLand (trả phí) và Vim (miễn phí).
- Thiết bị đầu cuối lệnh. Go hoạt động tốt trên bất kỳ terminal nào của Linux và Mac, cũng như trên PowerShell hoặc cmd trong Windows.
Cài đặt Go
Chỉ cần làm theo các bước Tải xuống và cài đặt.
Viết một số mã
Bắt đầu với Hello, World.
-
Mở dấu nhắc lệnh và cd vào thư mục home của bạn.
Trên Linux hoặc Mac:
cd
Trên Windows:
cd %HOMEPATH%
-
Tạo thư mục hello cho mã nguồn Go đầu tiên của bạn.
Ví dụ, dùng các lệnh sau:
mkdir hello cd hello
-
Bật tính năng theo dõi dependency cho mã của bạn.
Khi mã của bạn import các gói có trong các module khác, bạn quản lý các dependency đó thông qua module của chính mã. Module đó được xác định bởi tệp go.mod theo dõi các module cung cấp những gói đó. Tệp go.mod này đi kèm với mã của bạn, kể cả trong kho lưu trữ mã nguồn.
Để bật theo dõi dependency cho mã của bạn bằng cách tạo tệp go.mod, hãy chạy lệnh
go mod init, truyền vào tên của module mà mã của bạn sẽ nằm trong. Tên đó là đường dẫn module của module.Trong phát triển thực tế, đường dẫn module thường là vị trí kho lưu trữ nơi mã nguồn của bạn sẽ được lưu trữ. Ví dụ, đường dẫn module có thể là
github.com/mymodule. Nếu bạn dự định publish module để người khác sử dụng, đường dẫn module phải là một vị trí mà từ đó các công cụ Go có thể tải xuống module của bạn. Để biết thêm về đặt tên module với đường dẫn module, xem Quản lý dependency.Trong hướng dẫn này, chỉ cần dùng
example/hello.$ go mod init example/hello go: creating new go.mod: module example/hello
-
Trong trình soạn thảo văn bản, tạo tệp hello.go để viết mã.
-
Dán đoạn mã sau vào tệp hello.go của bạn và lưu tệp.
package main import "fmt" func main() { fmt.Println("Hello, World!") }Đây là mã Go của bạn. Trong đoạn mã này, bạn:
-
Khai báo gói
main(một gói là cách nhóm các hàm lại, và nó bao gồm tất cả các tệp trong cùng thư mục). -
Import
gói
fmtphổ biến, chứa các hàm để định dạng văn bản, bao gồm in ra console. Gói này là một trong các gói thư viện chuẩn bạn có được khi cài đặt Go. -
Triển khai hàm
mainđể in một thông báo ra console. Hàmmainđược thực thi mặc định khi bạn chạy góimain.
-
Khai báo gói
-
Chạy mã của bạn để xem lời chào.
$ go run . Hello, World!
Lệnh
go runlà một trong nhiều lệnhgobạn sẽ dùng để làm mọi thứ với Go. Dùng lệnh sau để xem danh sách các lệnh khác:$ go help
Gọi mã trong một gói bên ngoài
Khi bạn cần mã làm một việc gì đó mà người khác có thể đã triển khai, bạn có thể tìm một gói có các hàm bạn có thể dùng trong mã của mình.
-
Làm cho thông điệp in ra thú vị hơn với một hàm từ một
module bên ngoài.
- Truy cập pkg.go.dev và tìm kiếm gói "quote".
-
Trong kết quả tìm kiếm, tìm và nhấp vào phiên bản v1 của gói
rsc.io/quote(nó được liệt kê trong "Other major versions" củarsc.io/quote/v4). -
Trong phần Documentation, dưới mục Index, hãy ghi chú
danh sách các hàm bạn có thể gọi từ mã của mình. Bạn sẽ dùng hàm
Go. -
Ở đầu trang này, ghi chú rằng gói
quotenằm trong modulersc.io/quote.
Bạn có thể dùng trang pkg.go.dev để tìm các module đã publish mà gói của chúng có các hàm bạn có thể dùng trong mã của mình. Các gói được publish trong các module -- như
rsc.io/quote-- để người khác có thể sử dụng. Các module được cải thiện với các phiên bản mới theo thời gian, và bạn có thể nâng cấp mã để dùng các phiên bản cải tiến. -
Trong mã Go của bạn, import gói
rsc.io/quotevà thêm lời gọi đến hàmGocủa nó.Sau khi thêm các dòng được đánh dấu, mã của bạn sẽ bao gồm những phần sau:
package main import "fmt" import "rsc.io/quote" func main() { fmt.Println(quote.Go()) } -
Thêm các yêu cầu module mới và các tổng kiểm tra.
Go sẽ thêm module
quotenhư một yêu cầu, cùng với tệp go.sum dùng để xác thực module. Để biết thêm, xem Xác thực module trong Tài liệu tham chiếu Go Modules.$ go mod tidy go: finding module for package rsc.io/quote go: found rsc.io/quote in rsc.io/quote v1.5.2
-
Chạy mã của bạn để xem thông điệp được tạo ra bởi hàm bạn đang gọi.
$ go run . Don't communicate by sharing memory, share memory by communicating.
Lưu ý rằng mã của bạn gọi hàm
Go, in ra một thông điệp thú vị về giao tiếp.Khi bạn chạy
go mod tidy, nó đã xác định và tải xuống modulersc.io/quotechứa gói bạn đã import. Theo mặc định, nó tải xuống phiên bản mới nhất -- v1.5.2.
Viết thêm mã
Với phần giới thiệu nhanh này, bạn đã cài đặt Go và học được một số kiến thức cơ bản. Để viết thêm mã với một hướng dẫn khác, hãy xem Tạo một module Go.