Mọi thứ bạn cần biết để bắt đầu viết bài
Go là một trong những ngôn ngữ lập trình hiện đại có được sức hút trong nhiều cuộc khảo sát vì là ngôn ngữ ưa thích của các nhà phát triển. Go có cú pháp dễ sử dụng và dễ hiểu trong khi cung cấp hiệu suất hàng đầu.
Bạn có thể sử dụng Go để xây dựng các ứng dụng khác nhau, từ ứng dụng web đến ứng dụng dòng lệnh, dịch vụ đám mây và mạng. Hệ sinh thái của các gói bên thứ ba của Go hỗ trợ nhiều trường hợp sử dụng khác.
Go có hầu hết các tính năng mà bạn mong đợi trong một ngôn ngữ hiện đại: chung, tính tương tranh, suy luận kiểu, thu gom rác và nhiều tính năng khác.
Mục Lục
Bắt đầu với Go
Bạn có thể chạy Go trên hầu hết các hệ điều hành. Đi tới trang cài đặt và tải xuống phiên bản Go ưa thích cho hệ điều hành của bạn.
Khi bạn đã tải xuống và cài đặt Go, bạn có thể bắt đầu viết và chạy mã Go trong các tệp với .đi phần mở rộng tệp.
Bạn sẽ thấy Go có hầu hết các tính năng và nhiều chức năng của các ngôn ngữ lập trình khác. Nếu bạn đã có kinh nghiệm lập trình trước đó, bạn sẽ thấy Go đơn giản.
Các biến trong cờ vây
Cờ vây khá biểu đạt ở cấp độ cơ bản. Có hai cách bạn có thể khai báo biến trong Go. Bạn có thể dùng var từ khóa để khai báo các biến của nhiều kiểu dữ liệu. Sau khi chỉ định mã định danh, bạn sẽ phải đặt kiểu dữ liệu của biến.
var a string
var b int
var c anyvar age string = "five years old"
var age = 5
fmt.Println(age)
Bạn có thể dùng không tí nào làm kiểu dữ liệu nếu bạn không chắc chắn về kiểu dữ liệu của biến.
Bạn cũng có thể khai báo các hằng số với hăng sô từ khóa tương tự như khai báo các biến.
const age = "five years old"
Không thể sửa đổi các hằng sau khi khai báo.
Go cung cấp một cách thay thế để khai báo các biến trong các hàm. Lưu ý việc sử dụng dấu hai chấm trước dấu bằng:
func main() {
age := "five years old"
}
Điều kiện trong cờ vây
Cờ vây cũng có các điều kiện để ra quyết định trong các chương trình. Bạn có thể dùng nếu và khác các câu lệnh trong mã của bạn để xử lý các quyết định.
Đây là một ví dụ nếu câu lệnh so sánh hai số nguyên cho bằng nhau:
var a int = 12if a == 12 {
fmt.Println("a equals twelve")
}
Bạn chỉ có thể sử dụng khác câu lệnh sau khi chỉ định một nếu và bạn phải chỉ định khác chặn sau khi đóng cửa nếu khối:
var a int = 12if a == 12 {
fmt.Println("a equals twelve")
} else {
fmt.Println("a does not equal twelve")
}
Các khác khối chỉ chạy khi nếu câu lệnh được đánh giá là false. Go không cung cấp các câu lệnh else-if, nhưng bạn có thể sử dụng công tắc câu lệnh cho câu lệnh điều kiện phức tạp.
Đây là giải phẫu của một công tắc tuyên bố trong cờ vây.
age := 7
switch age {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
default:
fmt.Println("zero")
}
Bạn có thể tạo các câu lệnh chuyển đổi với công tắc từ khóa, sau đó bạn có thể chỉ định các trường hợp khác nhau với trường hợp từ khóa. Bạn có thể xử lý trường hợp mặc định bằng cách sử dụng mặc định từ khóa.
Đối với các vòng lặp trong Go
Go cung cấp vòng lặp for cho các tác vụ lặp lại và không giống như hầu hết các ngôn ngữ, không có vòng lặp while hoặc do-while trong Go.
Bạn có thể sử dụng vòng lặp kiểu C phổ biến hoặc phạm vi vòng lặp for mà cấu trúc dữ liệu nhất định hỗ trợ.
Dưới đây là một ví dụ về việc sử dụng vòng lặp C-style for trong chương trình Go:
func printer() {
for i := 0; i <= 3; i++ {
fmt.Println(i)
}
}
Bạn có thể sử dụng vòng lặp phạm vi tích hợp của Go trên các cấu trúc dữ liệu phức hợp như lát, bản đồ và mảng. Các phạm vi hàm trả về chỉ mục và phần tử của chỉ mục khi nó đi ngang qua cấu trúc dữ liệu.
for index, value := range dataStructure {
}
Mảng trong Go
Mảng là một trong những kiểu dữ liệu phức hợp trong Go. Mảng Go tương tự như mảng kiểu C và có độ dài xác định khi khai báo và khởi tạo.
Đây là cách bạn có thể khai báo mảng trong Go:
var arr [5]string
arr := [7]int{0, 1, 2, 3, 4, 5, 6}
Bạn có thể sử dụng lập chỉ mục để truy cập, gán và cập nhật các phần tử ở vị trí của mảng:
arr[3] = "three"
Đoạn mã trên cập nhật hoặc chèn chuỗi làm mục nhập thứ tư của arr biến mảng.
Slices in Go
Go cung cấp các lát cắt thay thế cho mảng để xử lý dữ liệu có độ dài không xác định. Slices tương tự như mảng, ngoại trừ việc bạn có thể thay đổi độ dài của các lát.
Bạn sẽ cần sử dụng phần mềm tích hợp sẵn làm chức năng tạo một lát cắt. Chuyển kiểu dữ liệu và độ dài ban đầu của lát vào hàm tạo.
slice := make([]string, 9)
slice[2] = "two"
Bạn có thể sử dụng hàm append để chèn các phần tử vào các lát cắt. Theo mặc định, nối thêm hàm chèn các phần tử vào cuối lát cắt.
slice = append(slice, "ten")
Các hoạt động nối trên các lát có thể tốn kém để làm việc vì Go tạo ra một mảng mới trên mỗi hoạt động nối thêm.
Bản đồ trong Go
Bản đồ là kiểu dữ liệu liên kết (cặp khóa-giá trị) được tích hợp sẵn trong Go. Bạn có thể dùng làm chức năng tạo bản đồ hoặc một khai báo đơn giản mà bạn sẽ phải khởi tạo bản đồ.
maps := make(map[string]int)
maps := map[string]int{"one": 1, "two": 2, "three": 3}
Bạn có thể truy cập các giá trị trong bản đồ bằng cách chỉ định các khóa. Ngoài ra, bạn có thể chèn giá trị vào bản đồ bằng cách chỉ định cặp khóa-giá trị.
maps["one"] = 1
one := maps["one"]
Bạn có thể dùng xóa bỏ chức năng xóa các cặp khóa-giá trị khỏi bản đồ. Các xóa bỏ hàm nhận định danh của bản đồ và khóa của cặp mà bạn muốn xóa:
delete(maps, "one")
Các chức năng trong Go
Các hàm là công cụ để tái sử dụng mã trong Go. Bạn có thể khai báo các hàm với func từ khóa theo sau là định danh của hàm:
func main() {
}
Các hàm có thể chấp nhận đối số và trả về giá trị. Bạn sẽ phải chỉ định loại đối số cùng với mã định danh cho các đối số.
func add (x string, y int) int {
return x + y
}
Bạn sẽ chỉ định kiểu trả về trước khối mã của hàm và trả về giá trị của kiểu được chỉ định cho các hàm trả về giá trị.
Cấu trúc trong Go
Go không phải là một ngôn ngữ hướng đối tượng theo thiết kế, nhưng bạn có thể triển khai các tính năng hướng đối tượng trong Go bằng cách sử dụng cấu trúc.
Cấu trúc là kiểu do người dùng xác định để nhóm các kiểu dữ liệu khác thành một thực thể duy nhất. Cấu trúc Go có thể chứa các giá trị của bất kỳ loại nào được Go hỗ trợ và các hàm có thể triển khai cấu trúc.
Đây là cách bạn có thể khai báo một cấu trúc trong Go:
type Game struct {
Name string
Year int
PlayTime float64
Players any
Countries map[string]string
}
Các Trò chơi struct có các trường với các loại bản đồ, chuỗi, số nguyên và dấu phẩy động. Bạn có thể khởi tạo cấu trúc với giá trị mặc định hoặc gán giá trị cho chúng.
var mko Game
mko := Game{
Name: "Value",
Year: 1231,
PlayTime: 1345412,
Players: [2]string{"9", "stuff"},
data: map[string]int{"one": 1, "two": 2, "three": 2},
}
Các hàm có thể triển khai và truy cập các kiểu cấu trúc. Bạn sẽ phải chỉ định tham số struct trước mã định danh của hàm.
func (g Game) FindGame(name string) {
a := g.Year
var b = g.Countries
}
Khi bạn truyền một cấu trúc cho một hàm, hàm có quyền truy cập vào các trường của cấu trúc và hàm trở thành một phương thức cấu trúc.
Go có nhiều trường hợp sử dụng
Bạn đã học những kiến thức cơ bản về ngôn ngữ lập trình Go và cú pháp để bắt đầu viết chương trình Go.
Có rất nhiều lĩnh vực và ứng dụng mà bạn có thể sử dụng Go. Go được sử dụng phổ biến như một ngôn ngữ phía máy chủ và bạn luôn có thể khám phá việc xây dựng các ứng dụng dựa trên web với nó.