Chương trình “Hello, World!” là một truyền thống kinh điển trong lập trình máy tính. Đây là chương trình đầu tiên đơn giản và đầy đủ cho người mới bắt đầu, đồng thời là cách kiểm tra xem môi trường của bạn đã được cấu hình chính xác hay chưa.
Trước khi bắt đầu viết chương trình đầu tiên bằng Go, việc chọn một môi trường lập trình ổn định là rất quan trọng. Với VPS hosting, bạn có thể tạo môi trường phát triển mạnh mẽ, đảm bảo hiệu suất cao. Khám phá các giải pháp VPS hosting tại DataOnline để tối ưu hóa hành trình lập trình của bạn!
Hướng dẫn này sẽ dẫn bạn qua quá trình tạo chương trình này bằng Go. Tuy nhiên, để làm cho chương trình thêm phần thú vị, bạn sẽ chỉnh sửa chương trình “Hello, World!” truyền thống để nó yêu cầu người dùng nhập tên. Sau đó, tên đó sẽ được dùng trong lời chào. Khi hoàn thành hướng dẫn, chương trình của bạn sẽ hiển thị như sau khi chạy:
Output
Yêu cầu tiên quyết
Trước khi bắt đầu hướng dẫn này, bạn cần cài đặt một môi trường phát triển Go cục bộ trên máy tính của mình. Bạn có thể thiết lập môi trường bằng cách theo một trong những hướng dẫn sau:
-
Cách cài đặt Go và thiết lập môi trường lập trình cục bộ trên macOS
-
Cách cài đặt Go và thiết lập môi trường lập trình cục bộ trên Ubuntu 18.04
-
Cách cài đặt Go và thiết lập môi trường lập trình cục bộ trên Windows 10
Bước 1 – Viết chương trình “Hello, World!” cơ bản
Để viết chương trình “Hello, World!”, hãy mở một trình soạn thảo văn bản dòng lệnh như nano và tạo một tệp mới:
nano hello.go
Khi tệp văn bản mở ra trong cửa sổ terminal, bạn sẽ nhập chương trình của mình:
hello.go
package main import "fmt" func main() { fmt.Println("Hello, World!") }
Giải thích các thành phần của mã nguồn:
-
package: Từ khóa của Go xác định gói mà tệp này thuộc về. Mỗi thư mục chỉ chứa một gói, và mỗi tệp
.go
phải khai báo cùng một tên gói ở đầu tệp. Trong ví dụ này, mã nguồn thuộc về góimain
. -
import: Từ khóa của Go cho biết trình biên dịch Go sẽ sử dụng các gói nào trong tệp này. Ở đây, bạn nhập gói
fmt
có sẵn trong thư viện tiêu chuẩn, cung cấp các hàm định dạng và in ra. -
fmt.Println: Là hàm trong gói
fmt
được sử dụng để in văn bản ra màn hình. Sau hàm này là chuỗi"Hello, World!"
được bao quanh bởi dấu ngoặc kép; đây là chuỗi (string) sẽ được in ra khi chương trình chạy.
Lưu và thoát nano bằng cách nhấn CTRL + X
, và khi được nhắc, nhấn Y
để lưu tệp.
Bây giờ, bạn đã sẵn sàng thử chạy chương trình của mình.
Bước 2 – Chạy một chương trình Go
Với chương trình “Hello, World!” đã được viết, hãy chạy chương trình bằng lệnh go
theo sau là tên tệp bạn vừa tạo:
go run hello.go
Chương trình sẽ được biên dịch, thực thi và hiển thị đầu ra:
Output
Các chương trình Go cần được biên dịch trước khi chạy. Khi bạn gọi go run
với tên của một tệp, trong trường hợp này là hello.go
, lệnh go
sẽ biên dịch ứng dụng và sau đó chạy tệp nhị phân được tạo ra. Đối với các chương trình được viết bằng ngôn ngữ lập trình biên dịch, trình biên dịch sẽ lấy mã nguồn của chương trình và tạo ra một loại mã cấp thấp hơn (chẳng hạn như mã máy) để tạo ra một chương trình thực thi.
Các ứng dụng Go yêu cầu một gói main và chính xác một hàm main()
đóng vai trò là điểm khởi đầu của ứng dụng. Hàm main
không nhận tham số và không trả về giá trị. Thay vào đó, nó thông báo cho trình biên dịch Go rằng gói này sẽ được biên dịch thành một gói thực thi.
Sau khi được biên dịch, mã sẽ thực thi bằng cách đi vào hàm main()
trong gói main
. Nó thực thi dòng lệnh fmt.Println("Hello, World!")
bằng cách gọi hàm fmt.Println
. Giá trị chuỗi "Hello, World!"
sau đó được truyền vào hàm. Trong ví dụ này, chuỗi "Hello, World!"
cũng được gọi là một đối số vì nó là một giá trị được truyền vào một phương thức.
Dấu ngoặc kép bao quanh "Hello, World!"
sẽ không được in ra màn hình vì chúng được sử dụng để xác định điểm bắt đầu và kết thúc của chuỗi trong Go.
Trong bước này, bạn đã tạo một chương trình “Hello, World!” hoạt động với Go. Trong bước tiếp theo, bạn sẽ khám phá cách làm cho chương trình tương tác hơn.
Bước 3 – Yêu cầu nhập dữ liệu từ người dùng
Mỗi lần chạy, chương trình “Hello, World!” ban đầu chỉ tạo ra cùng một đầu ra. Trong bước này, bạn sẽ thêm chức năng yêu cầu người dùng nhập tên, sau đó sử dụng tên đó trong đầu ra.
Thay vì sửa đổi chương trình hiện có, hãy tạo một chương trình mới có tên greeting.go
bằng trình soạn thảo nano:
nano greeting.go
Đầu tiên, thêm đoạn mã sau để yêu cầu người dùng nhập tên:
greeting.go
package main import ( "fmt" ) func main() { fmt.Println("Please enter your name.") }
Tiếp theo, thêm dòng lệnh để tạo biến lưu trữ dữ liệu nhập của người dùng:
greeting.go
Dòng var name string
tạo ra biến name
có kiểu dữ liệu là chuỗi.
Sau đó, thêm dòng lệnh sau để bắt dữ liệu nhập từ bàn phím:
greeting.go
Phương thức fmt.Scanln
làm chương trình chờ dữ liệu nhập từ bàn phím cho đến khi gặp ký tự xuống dòng (\n
). Điều này cho phép người dùng nhập dữ liệu, và sau đó chương trình sẽ tiếp tục khi nhấn ENTER. Tất cả các phím, bao gồm cả phím ENTER, sẽ được thu thập và chuyển thành chuỗi ký tự, lưu vào biến name
.
Cuối cùng, thêm dòng lệnh in ra kết quả sử dụng hàm fmt.Printf
:
greeting.go
Ở đây, fmt.Printf
nhận chuỗi định dạng với ký hiệu %s
để chèn giá trị của biến name
vào chuỗi. Go không hỗ trợ nội suy chuỗi, vì vậy phương pháp này được sử dụng để đưa giá trị của biến vào trong chuỗi.
Lưu và thoát nano bằng cách nhấn CTRL + X
và nhấn Y
khi được nhắc lưu tệp.
Chạy chương trình:
go run greeting.go
Chương trình sẽ chạy và yêu cầu nhập tên. Ví dụ, nếu bạn nhập:
Output
Lưu ý rằng có một dấu xuống dòng sau tên. Điều này xảy ra vì chương trình đã thu nhận phím ENTER (kể cả ký tự xuống dòng) và in ra cùng với dữ liệu. Để khắc phục, bạn cần loại bỏ ký tự xuống dòng khỏi chuỗi nhập.
Mở lại tệp greeting.go
:
nano greeting.go
Tìm dòng sau trong chương trình:
greeting.go
... fmt.Scanln(&name) ...
Thêm dòng sau ngay sau đó:
greeting.go
Dòng này sử dụng hàm TrimSpace
từ gói strings
để loại bỏ các ký tự khoảng trắng (bao gồm cả ký tự xuống dòng) ở đầu và cuối chuỗi. Để sử dụng gói strings
, bạn cần nhập nó vào đầu chương trình.
Tìm đoạn:
greeting.go
import ( "fmt" )
Và thêm dòng nhập gói strings
:
greeting.go
Giờ đây, chương trình đầy đủ sẽ như sau:
greeting.go
package main import ( "fmt" "strings" ) func main() { fmt.Println("Please enter your name.") var name string fmt.Scanln(&name) name = strings.TrimSpace(name) fmt.Printf("Hi, %s! I'm Go!", name) }
Lưu và thoát nano. Sau đó, chạy lại chương trình:
go run greeting.go
Lần này, sau khi bạn nhập tên và nhấn ENTER, đầu ra sẽ chính xác:
Output
Bây giờ, bạn đã có một chương trình Go cho phép nhận dữ liệu từ người dùng và in kết quả ra màn hình.
Kết luận
Trong hướng dẫn này, bạn đã viết một chương trình “Hello, World!” có khả năng nhận dữ liệu từ người dùng, xử lý và hiển thị đầu ra. Với chương trình cơ bản này, hãy thử mở rộng thêm chức năng. Ví dụ, yêu cầu người dùng nhập màu yêu thích và in ra rằng màu yêu thích của chương trình là đỏ, hoặc tạo ra một chương trình Mad-Lib đơn giản bằng kỹ thuật tương tự.
Khi bạn đã quen với lập trình Go, việc triển khai ứng dụng lên server là bước tiếp theo. Mua VPS giá rẻ giúp bạn tiết kiệm chi phí mà vẫn đảm bảo hiệu suất. Xem ngay các gói mua VPS giá rẻ tại DataOnline để bắt đầu triển khai dự án của bạn!