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ạnghtml, gói thao tác template htmlnet, 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ệnhreflect, gói reflectionlog, gói log tích hợp sẵnsort, gói thao tác sắp xếpregex, gói biểu thức chính quyimage, gói thao tác hình ảnhtime, gói thao tác thời gianunicode, gói thao tác bộ ký tự unicodeunsafe, cung cấp thao tác con trỏ không giới hạn kiểusyscall, gói gọi hệ thống do hệ điều hành cung cấptesting, gói testing, chủ yếu dùng khi viết testsync, gói thao tác concurrentcontext, gói contextstrconv, gói chuyển đổi chuỗistrings, gói thao tác chuỗibytes, gói thao tác byte slicemaps, gói thao tác mapslices, gói thao tác sliceio, định nghĩa một loạt interface IO cơ bản, ví dụCloser,Writerthườ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ọcmath/bits, gói thao tác bitmath/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 caocontainer/heap, triển khai heap nhỏ nhấtcontainer/list, triển khai doubly linked listcontainer/ring, triển khai ringarchive/zip, gói lưu trữ ziparchive/tar, gói lưu trữ tệp tarcompress, 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 databaseencoding, 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 Gogo/parser, gói phân tích mã nguồn Go thành cây cú pháp trừu tượnggo/importer, cung cấp quyền truy cập vào importergo/format, gói định dạng Goarena, 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ệmruntime, gói thao tác runtime, Go có nhiều thao tác được thực hiện bởi gói này.
