Go 1.22 đã được phát hành, hãy tìm hiểu về các tính năng và cải tiến mới của nó

goland

Go là một ngôn ngữ lập trình được biên dịch đồng thời với kiểu gõ tĩnh lấy cảm hứng từ cú pháp C.

Phiên bản mới của Go 1.22, ra mắt sáu tháng sau phiên bản 1.21, với một số thay đổi đáng chú ý về bộ công cụ, thời gian chạy, cải tiến tối ưu hóa, cải tiến trình biên dịch và thư viện.

Đối với những người không biết về Go, tôi phải nói với bạn rằng đây làĐó là một ngôn ngữ lập trình được phát triển bởi Google với sự tham gia của cộng đồng như một giải pháp lai kết hợp hiệu suất cao của các ngôn ngữ được biên dịch với các ưu điểm như ngôn ngữ kịch bản như dễ viết mã, tốc độ phát triển và khả năng bảo vệ khỏi lỗi.

Các tính năng mới chính của Go 1.22

Trong phiên bản mới này, được giới thiệu từ Go 1.22, có những điểm nổi bật hai thay đổi trong vòng lặp "for"Như Trước đây, các biến được khai báo bằng vòng lặp for được tạo một lần và được cập nhật trong mỗi lần lặp. Trong Go 1.22, mỗi lần lặp của vòng lặp sẽ tạo ra các biến mới Ngoài ra, để tránh những lỗi vô tình chia sẻ Đã thêm hỗ trợ thử nghiệm (GOEXPERIMENT=rangefunc) cho các hàm phạm vi cho các vòng lặp, cho phép bạn chỉ định một hàm như một trình vòng lặp và đã giải quyết một vấn đề tồn tại lâu dài với các vòng lặp for điều này khiến các lệnh gọi coroutine chia sẻ các biến vòng lặp giữa các lần lặp. Ngoài ra, vòng lặp for bây giờ có thể lặp qua các số nguyên. Ví dụ:

package main import "fmt" func main() { for i := range 10 { fmt.Println(10 - i) } fmt.Println("go1.22 cất cánh!") }

Một thay đổi đáng chú ý khác trong phiên bản mới này là sự ra đời của khả năng sử dụng một thư mục «nhà cung cấp« trong đó có chứa các phụ thuộc không gian làm việc. Bây giờ các lệnh bạn có thể sử dụng thư mục này, được tạo bằng `đi làm việc` và được sử dụng trong các lệnh xây dựng khi ` được đặt-mod` trong «nhà cung cấp«, đây là giá trị mặc định khi tồn tại một thư mục «nhà cung cấp» trong không gian làm việc.

Điều quan trọng cần lưu ý là chức năng của `đi lấy` không còn được hỗ trợ bên ngoài mô-đun ở chế độ ĐƯỜNG DẪN được kế thừa Tuy nhiên, các lệnh xây dựng khác như `đi xây dựng` và `đi thử nghiệm` Họ sẽ tiếp tục làm việc vô thời hạn cho các chương trình GOPATH cũ. Hơn nữa, lệnh `bắt đầu mod` sẽ không còn cố gắng nhập các yêu cầu mô-đun từ các tệp cấu hình của « khác“nhà cung cấp” (như Gopkg.lock).

Go 1.22 giới thiệu một gói mới io/không an toàn cung cấp chức năng làm việc với con trỏ và bộ nhớ không an toàn. Gói này cung cấp các phương thức để chuyển đổi con trỏ sang và từ các loại an toàn và không an toàn, cũng như để thực hiện các thao tác sao chép bộ nhớ mà không cần kiểm tra giới hạn.

Công việc tiếp tục bao gồm các tối ưu hóa trong trình biên dịch dựa trên kết quả của p.Hồ sơ mã PGO, và đó là bây giờ trình biên dịch sử dụng các công cụ ảo hóa để thay thế các cuộc gọi gián tiếp của các phương pháp khác nhau với việc thực thi khối nội tuyến mở rộng. Khi PGO được bật, thay đổi được thêm vào đã cải thiện hiệu suất của hầu hết các chương trình từ 2% đến 14%.

Trong phiên bản của Sử dụng Windows, các chương trình liên kết hoặc tải thư viện Hãy xây dựng với -buildmode=c-lưu trữ o -buildmode=c-shared hiện có thể sử dụng API Windows ghi nhật ký sự kiện (ETW) thông qua các gói mới thời gian chạy / theo dõi y móc câu, triển khai giao thức thu thập theo dõi sự kiện Go với tư cách là nhà cung cấp ETW.

Trong số những thay đổi khác nổi bật:

  • Lệnh đi kiểm tra -cover hiện in bản tóm tắt phạm vi bảo hiểm cho các gói được bảo hiểm không có tệp thử nghiệm riêng.
  • hệ điều hành / thực thi, khả năng xác định thuộc tính ngữ cảnh đã được thêm vào, cho phép bạn đặt các giá trị như thư mục làm việc, biến môi trường và bộ mô tả tệp đầu vào/đầu ra cho các lệnh được thực thi.
  • Quản lý bộ nhớ được tối ưu hóa trong thời gian chạy, giúp tăng hiệu suất 1-3% và giảm mức tiêu thụ bộ nhớ 1% cho hầu hết các ứng dụng.
  • Elququete net / http, chức năng đã được thêm vào ĐóngKết nối nhàn rỗi tới máy khách HTTP, nó sẽ đóng tất cả các kết nối nhàn rỗi mà máy khách đã sử dụng gần đây
  • Một triển khai thử nghiệm cải tiến (GOEXPERIMENT=newinliner) của cơ chế chèn cuộc gọi đã được thêm vào trình biên dịch, sử dụng phương pháp phỏng đoán để tách các hoạt động quan trọng khỏi các hoạt động không quan trọng.
  • Gói đã được thêm » toán/rand/v2 » vào thư viện chuẩn, nơi cung cấp API nhất quán hơn và sử dụng thuật toán nhanh hơn để tạo số giả ngẫu nhiên.
  • Elququete net/http.ServeMux Đã thêm khả năng chỉ định phương thức và mặt nạ trong mẫu.

Cuối cùng, nếu bạn là muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết Trong liên kết sau đây.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.