Trong bài hướng dẫn này, bạn sẽ được giới thiệu sơ lược về lập trình Go. Trên đường đi, bạn sẽ:
- Cài đặt Go (nếu bạn chưa cài).
- Viết một đoạn mã “Hello, world” đơn giản.
- Dùng lệnh
gođể chạy mã của bạn. - Dùng công cụ tìm kiếm package của Go để tìm những package bạn có thể dùng trong mã của mình.
- Gọi hàm từ một module bên ngoài.
Lưu ý: Xem các bài hướng dẫn khác tại Hướng dẫn.
Yêu cầu trước khi bắt đầu
- Một chút kinh nghiệm lập trình. Mã ở đây khá đơn giản, nhưng sẽ dễ hơn nếu bạn đã biết đôi chút về hàm.
- Một công cụ để soạn 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 trình soạn thảo đều hỗ trợ Go tốt. Phổ biến nhất là VSCode (miễn phí), GoLand (trả phí) và Vim (miễn phí).
- Một cửa sổ dòng lệnh. Go chạy tốt với mọi terminal trên Linux và Mac, và với PowerShell hoặc cmd trên Windows.
Cài đặt Go
Bạn chỉ cần làm theo các bước tại Tải về và cài đặt.
Viết một chút mã
Hãy bắt đầu với Hello, World.
-
Mở cửa sổ dòng lệnh và cd về thư mục home của bạn.
Trên Linux hoặc Mac:
cdTrê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 theo dõi phụ thuộc cho mã của bạn.
Khi mã của bạn import những package nằm trong các module khác, bạn quản lý các phụ thuộc đó thông qua module của chính mã bạn. Module đó được định nghĩa bởi một tệp go.mod, nơi theo dõi các module cung cấp những package kia. Tệp go.mod này đi cùng mã của bạn, bao gồm cả trong repository mã nguồn.
Để bật theo dõi phụ thuộc bằng cách tạo tệp go.mod, hãy chạy lệnh
go mod init, kèm theo tên của module mà mã của bạn sẽ nằm trong đó. Tên này chính là module path của module.Trong phát triển thực tế, module path thường là vị trí repository nơi mã nguồn của bạn được lưu giữ. Ví dụ, module path có thể là
github.com/mymodule. Nếu bạn dự định publish module của mình cho người khác dùng, module path bắt buộc phải là một vị trí mà từ đó các công cụ Go có thể tải module của bạn về. Tìm hiểu thêm về cách đặt tên module bằng module path tại Quản lý phụ thuộc.Trong phạm vi bài hướng dẫn này, bạn 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, hãy tạo tệp hello.go để viết mã.
-
Dán đoạn mã sau vào tệp hello.go rồi lưu lại.
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 package
main(package là cách nhóm các hàm lại với nhau, và nó gồm toàn bộ các tệp nằm trong cùng một thư mục). - Import package
fmtrất phổ biến, chứa các hàm để định dạng văn bản, bao gồm cả việc in ra console. Package này là một trong các package thuộc thư viện chuẩn mà bạn có được khi cài đặt Go. - Hiện thực hàm
mainđể in một thông điệp ra console. Hàmmainđược thực thi mặc định khi bạn chạy packagemain.
- Khai báo package
-
Chạy mã của bạn để xem lời chào.
$ go run . Hello, World!Lệnh
go runlà một trong rất nhiều lệnhgomà bạn sẽ dùng để làm việc với Go. Dùng lệnh sau để xem danh sách các lệnh còn lại:$ go help
Gọi mã trong một package bên ngoài
Khi bạn cần mã của mình làm một việc mà có thể ai đó đã hiện thực sẵn, bạn có thể tìm một package có sẵn các hàm dùng được cho mã của bạn.
-
Hãy làm cho thông điệp được in ra thú vị hơn một chút bằng một hàm từ module bên ngoài.
- Truy cập pkg.go.dev và tìm package “quote”.
- Trong kết quả tìm kiếm, tìm và nhấn vào phiên bản v1 của package
rsc.io/quote(nó sẽ được liệt kê cùng với mục “Other major versions” làrsc.io/quote/v4). - Trong phần Documentation, ở mục Index, hãy để ý 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, hãy để ý rằng package
quotenằm trong modulersc.io/quote.
Bạn có thể dùng trang pkg.go.dev để tìm các module đã được publish, có chứa những package với các hàm dùng được cho mã của bạn. Package được publish bên trong module – chẳng hạn
rsc.io/quote– để người khác dùng được. Module được cải tiến qua từng phiên bản mới theo thời gian, và bạn có thể nâng cấp mã của mình để dùng các phiên bản đã cải tiến đó. -
Trong mã Go của bạn, hãy import package
rsc.io/quotevà thêm lời gọi tới hàmGocủa nó.Sau khi thêm những dòng được đánh dấu, mã của bạn sẽ chứa nội dung như sau:
package main import "fmt" import "rsc.io/quote" func main() { fmt.Println(quote.Go()) } -
Thêm yêu cầu module mới và các giá trị checksum.
Go sẽ thêm module
quotevào danh sách yêu cầu, đồng thời tạo tệp go.sum dùng để xác thực module. Tìm hiểu thêm tại Xác thực module trong tài liệu tham khảo 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 do hàm bạn vừa gọi sinh ra.
$ go run . Don't communicate by sharing memory, share memory by communicating.Hãy để ý rằng mã của bạn gọi hàm
Go, và nó in ra một thông điệp thú vị về giao tiếp.Khi bạn chạy
go mod tidy, lệnh này đã tìm và tải về modulersc.io/quotechứa package mà bạn đã import. Mặc định, nó tải phiên bản mới nhất – v1.5.2.
Viết thêm mã
Qua phần giới thiệu nhanh này, bạn đã cài đặt được Go và học một vài điều cơ bản. Để viết thêm mã với một bài hướng dẫn khác, hãy xem Tạo một Go module.