0
0
Lập trình
Admin Team
Admin Teamtechmely

Phần 2: Khám Phá Golang - Gói (Packages), Biến (Variables) và Hàm (Functions) Căn Bản

Đăng vào 3 ngày trước

• 3 phút đọc

Chủ đề:

golangMayFest2024

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 Copy
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 Copy
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 Copy
// 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 Copy
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 Copy
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 Copy
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 Copy
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 Copy
var age int = 30

Ngoài ra, Go hỗ trợ cú pháp khai báo biến ngắn gọn:

go Copy
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 Copy
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 Copy
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 Copy
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 Copy
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

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào