Khám Phá Golang: Gói, Biến và Hàm Căn Bản
Giới Thiệu Về Gói (Packages)
Gói (Packages) trong ngôn ngữ lập trình Go là một phương pháp hiệu quả để tổ chức, quản lý và tái sử dụng mã nguồn. Mỗi tập tin trong Go đều thuộc về một gói, và tên của gói thường trùng với tên thư mục chứa tập tin đó.
Cách Sử Dụng Gói
Để sử dụng các chức năng từ một gói khác, bạn cần phải import gói đó vào tập tin của mình. Cú pháp import trong Go rất đơn giản:
go
import "tên_gói"
Ví dụ, để sử dụng các chức năng in và định dạng từ gói fmt
, bạn có thể thực hiện như sau:
go
package main
import (
"fmt"
"math/rand"
)
func main() {
fmt.Println("Số may mắn của tôi là", rand.Intn(100))
}
Ngôn ngữ Go cung cấp rất nhiều gói chuẩn, giúp bạn thực hiện các tác vụ phổ biến như đọc ghi tệp, xử lý mạng và nhiều hơn nữa. Ngoài ra, bạn cũng có thể tự tạo ra gói riêng của mình bằng cách tổ chức các tập tin trong cùng một thư mục và đặt tên thư mục đó trùng với tên gói.
Quản Lý Dependency Với Go Modules
Trong các dự án lớn, việc quản lý các phụ thuộc giữa các gói là rất quan trọng. Go modules chính là một công cụ hữu ích để giúp bạn quản lý các phụ thuộc và phiên bản của các gói dễ dàng hơn.
Tên Được Xuất (Exported Names)
Trong Go, một tên (biến hoặc hàm) sẽ được xuất ra bên ngoài gói (exported) nếu nó bắt đầu bằng một chữ cái viết hoa. Ngược lại, nếu tên bắt đầu bằng chữ cái nhỏ, nó sẽ không được xuất ra bên ngoài gói.
Ví dụ:
go
// Trong file math.go
package math
const Pi = 3.14159 // Pi là biến được export
var hello = "Xin chào" // biến không được export
func CalculateArea(radius float64) float64 {
return Pi * radius * radius
}
Hàm (Functions)
Trong Go, một hàm có thể nhận từ không đến nhiều tham số. Dưới đây là các ví dụ về cách định nghĩa cũng như sử dụng hàm trong Go:
Hàm Nhận Tham Số
go
func greet(name string) {
fmt.Println("Xin chào," , name)
}
func main() {
greet("Alice")
}
Các Kết Quả Trả Về
Hàm trong Go cũng có khả năng trả về nhiều kết quả cùng lúc:
go
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("Không thể chia cho 0")
}
return a / b, nil
}
Giá Trị Trả Về Có Tên
Bạn có thể đặt tên cho giá trị trả về của hàm, giúp tăng cường tính rõ ràng trong mã nguồn:
go
func split(sum int) (x, y int) {
x = sum * 2 / 10
y = sum - x
return
}
Biến (Variables)
Khai Báo và Khởi Tạo Biến
Trong Go, bạn có thể khai báo biến bằng cách sử dụng từ khóa var
:
go
var age int
var name string
var isActive bool
Bạn cũng có thể khởi tạo một biến bằng cách gán giá trị:
go
var age int = 30
Ngoài ra, Go hỗ trợ cú pháp khai báo biến ngắn gọn:
go
age := 30
Các Loại Biến Cơ Bản
1. Số Nguyên (Integer)
Go hỗ trợ nhiều loại số nguyên với kích thước khác nhau từ 8 bit đến 64 bit:
go
var a uint8 = 225
fmt.Println(a, a-3)
2. Số Thực (Float)
Go cung cấp các loại số thực gồm float32 và float64:
go
a := 20.45
fmt.Printf("Kết quả là: %f", a)
3. Số Phức (Complex)
Số phức trong Go có thể được tạo ra từ các thành phần thực và ảo:
go
var c complex128 = complex(1, 2)
fmt.Println(c)
Kiểu Dữ Liệu Boolean và Chuỗi
Boolean trong Go chỉ cho phép giá trị true và false. Chuỗi là một tập hợp các ký tự Unicode, không thể thay đổi:
go
var str string = "Hello, World!"
fmt.Println(str)
Kết Bài
Trong bài viết này, chúng tôi đã cùng tìm hiểu những khái niệm cơ bản về gói, hàm và biến trong Golang. Các kiến thức này sẽ là nền tảng quan trọng cho bạn trong hành trình làm quen với Golang. Nếu bạn có bất kỳ câu hỏi nào, hãy để lại bình luận để chúng tôi có thể thảo luận thêm. Hẹn gặp lại trong bài viết tiếp theo của series Golang Essentials: Nền Tảng và Kiến Thức Cơ Bản.
source: viblo