Skip to content

Giới thiệu thư viện chuẩn Go

Khi viết bài này, phiên bản Go đã là 1.21, cách thời điểm trang web này được thành lập cũng đã hơn một năm.

Thư viện chuẩn của Go rất phong phú (không bao gồm cấu trúc dữ liệu), chức năng cũng rất mạnh mẽ, API rất thân thiện với nhà phát triển, có thể sử dụng thành thạo thư viện chuẩn sẽ mang lại sự trợ giúp rất lớn cho việc phát triển hàng ngày. Ví dụ, bạn có thể phát triển một dự án Web độc lập hoàn chỉnh mà không cần bất kỳ phụ thuộc bên ngoài nào, chỉ sử dụng ba thư viện net/http, html/template, database/sql.

Nội dung thư viện chuẩn chưa được cập nhật liên tục vì nội dung thư viện chuẩn thực sự quá nhiều, vì vậy dưới đây sẽ tóm tắt đơn giản tác dụng của một số thư viện chuẩn thường dùng, như vậy có thể lựa chọn những cái mình quan tâm để tìm hiểu, chú thích cấp gói của mỗi thư viện chuẩn sẽ giải thích chi tiết gói đó dùng để làm gì.

  • fmt, gói xử lý nhập xuất có định dạng
  • html, gói thao tác template html
  • net, cung cấp một loạt gói thao tác mạng, rất mạnh mẽ
  • flag, gói phân tích cú pháp tham số dòng lệnh
  • reflect, gói reflection
  • log, gói log tích hợp sẵn
  • sort, gói thao tác sắp xếp
  • regex, gói biểu thức chính quy
  • image, gói thao tác hình ảnh
  • time, gói thao tác thời gian
  • unicode, gói thao tác bộ ký tự unicode
  • unsafe, cung cấp thao tác con trỏ không giới hạn kiểu
  • syscall, gói gọi hệ thống do hệ điều hành cung cấp
  • testing, gói testing, chủ yếu dùng khi viết test
  • sync, gói thao tác concurrent
  • context, gói context
  • strconv, gói chuyển đổi chuỗi
  • strings, gói thao tác chuỗi
  • bytes, gói thao tác byte slice
  • maps, gói thao tác map
  • slices, gói thao tác slice
  • io, định nghĩa một loạt interface IO cơ bản, ví dụ Closer, Writer thường dùng, còn có một số hàm thao tác IO cơ bản.
  • io/fs, định nghĩa một loạt interface hệ thống tệp, có thể coi là trừu tượng hóa hệ thống tệp.
  • os, gói tương tác với hệ điều hành, cung cấp một loạt hàm cụ thể, có thể hiểu đơn giản là triển khai cụ thể của hai gói trên.
  • os/signal, gói signal hệ điều hành, dùng để lắng nghe signal của hệ điều hành, chủ yếu dùng để thực hiện tắt chương trình một cách thanh lịch.
  • os/exec, gói lệnh hệ điều hành, dùng để thực thi lệnh hệ điều hành.
  • os/user, gói người dùng hệ điều hành, dùng để lấy thông tin người dùng hệ điều hành.
  • bufio, gói đọc viết IO có buffer.
  • path, gói xử lý đường dẫn phân cách bằng dấu gạch chéo, ví dụ url.
  • path/filepath, gói xử lý đường dẫn tệp.
  • math, gói thao tác toán học
  • math/bits, gói thao tác bit
  • math/cmplx, gói thao tác số phức, cũng cung cấp một số hàm công cụ cho hàm lượng giác.
  • math/rand, gói random giả
  • math/big, gói tính toán số lớn độ chính xác cao
  • container/heap, triển khai heap nhỏ nhất
  • container/list, triển khai doubly linked list
  • container/ring, triển khai ring
  • archive/zip, gói lưu trữ zip
  • archive/tar, gói lưu trữ tệp tar
  • compress, gói triển khai thuật toán nén, ví dụ gzip, flate.
  • database/sql, gói tương tác với database
  • encoding, gói xử lý encoding, có nhiều gói con, ví dụ json, xml, còn có base64.
  • crypto, gói xử lý encryption, có nhiều gói con, ví dụ sha1, rsa.
  • go/ast, gói ánh xạ cây cú pháp trừu tượng của mã nguồn Go
  • go/parser, gói phân tích mã nguồn Go thành cây cú pháp trừu tượng
  • go/importer, cung cấp quyền truy cập vào importer
  • go/format, gói định dạng Go
  • arena, cung cấp chức năng cấp phát và giải phóng bộ nhớ thủ công, đang trong giai đoạn thử nghiệm
  • runtime, gói thao tác runtime, Go có nhiều thao tác được thực hiện bởi gói này.

Golang by www.golangdev.cn edit