Blog Go

Go 1.24 đã được phát hành!

Junyang Shao, on behalf of the Go team
11 February 2025

Hôm nay nhóm Go vui mừng phát hành Go 1.24, bạn có thể tải về từ trang download.

Go 1.24 có nhiều cải tiến so với Go 1.23. Dưới đây là một số thay đổi đáng chú ý; để xem danh sách đầy đủ, tham khảo ghi chú phát hành.

Thay đổi ngôn ngữ

Go 1.24 nay hỗ trợ đầy đủ type alias generic: một type alias có thể được tham số hóa như một kiểu được định nghĩa. Xem đặc tả ngôn ngữ để biết chi tiết.

Cải thiện hiệu năng

Một số cải tiến hiệu năng trong runtime đã giảm chi phí CPU từ 2-3% tính trung bình trên một bộ benchmark đại diện. Các cải tiến này bao gồm triển khai map built-in mới dựa trên Swiss Tables, cấp phát bộ nhớ hiệu quả hơn cho các object nhỏ, và triển khai mutex nội bộ runtime mới.

Cải tiến công cụ

  • Lệnh go nay cung cấp cơ chế theo dõi dependency tool cho một module. Dùng go get -tool để thêm chỉ thị tool vào module hiện tại. Dùng go tool [tên tool] để chạy các tool được khai báo với chỉ thị tool. Đọc thêm về lệnh go trong ghi chú phát hành.
  • Trình phân tích test mới trong lệnh con go vet báo cáo các lỗi phổ biến trong khai báo test, fuzzer, benchmark và example trong các gói kiểm thử. Đọc thêm về vet trong ghi chú phát hành.

Bổ sung thư viện chuẩn

  • Thư viện chuẩn nay bao gồm một tập cơ chế mới để hỗ trợ tuân thủ FIPS 140-3. Các ứng dụng không cần thay đổi mã nguồn để dùng các cơ chế mới cho các thuật toán được chấp thuận. Đọc thêm về tuân thủ FIPS 140-3 trong ghi chú phát hành. Ngoài FIPS 140, một số gói trước đây trong module x/crypto nay có sẵn trong thư viện chuẩn.

  • Benchmark nay có thể dùng phương thức testing.B.Loop nhanh hơn và ít xảy ra lỗi hơn để thực hiện các lần lặp benchmark như for b.Loop() { ... } thay cho các cấu trúc vòng lặp thông thường liên quan đến b.N như for range b.N. Đọc thêm về hàm benchmark mới trong ghi chú phát hành.

  • Kiểu os.Root mới cung cấp khả năng thực hiện các thao tác filesystem được cô lập trong một thư mục cụ thể. Đọc thêm về truy cập filesystem trong ghi chú phát hành.

  • Runtime cung cấp cơ chế finalization mới, runtime.AddCleanup, linh hoạt hơn, hiệu quả hơn và ít xảy ra lỗi hơn so với runtime.SetFinalizer. Đọc thêm về cleanup trong ghi chú phát hành.

Cải thiện hỗ trợ WebAssembly

Go 1.24 thêm chỉ thị go:wasmexport mới cho chương trình Go để export hàm tới WebAssembly host, và hỗ trợ build một chương trình Go như một WASI reactor/library. Đọc thêm về WebAssembly trong ghi chú phát hành.


Hãy đọc ghi chú phát hành Go 1.24 để biết thông tin đầy đủ và chi tiết. Đừng quên theo dõi các bài đăng blog tiếp theo sẽ đi sâu hơn về một số chủ đề được đề cập ở đây!

Cảm ơn tất cả những người đã đóng góp cho bản phát hành này bằng cách viết code và tài liệu, báo cáo lỗi, chia sẻ phản hồi, và kiểm thử các release candidate. Nỗ lực của bạn giúp đảm bảo Go 1.24 ổn định nhất có thể. Như thường lệ, nếu bạn phát hiện bất kỳ vấn đề nào, hãy tạo issue.

Tận hưởng Go 1.24!

Bài tiếp theo: Ứng dụng Wasm mở rộng với Go
Bài trước: Kết Quả Khảo Sát Go Developer Survey 2024 H2
Mục lục blog