Phát hành ngôn ngữ lập trình Go 1.23 có hỗ trợ đo từ xa

Sau sáu tháng phát triển, ngôn ngữ lập trình Go 1.23 đã được phát hành, ngôn ngữ này đang được Google phát triển 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 những ưu điểm của ngôn ngữ kịch bản như dễ viết mã, tốc độ phát triển và bảo vệ lỗi. Mã dự án được phân phối theo giấy phép BSD.

Cú pháp của Go dựa trên các yếu tố quen thuộc của ngôn ngữ C với một số vay mượn từ ngôn ngữ Oberon. Ngôn ngữ khá ngắn gọn nhưng mã rất dễ đọc và dễ hiểu. Mã Go được biên dịch thành các tệp thực thi nhị phân riêng biệt được thực thi nguyên bản mà không cần sử dụng máy ảo (mô-đun lược tả, gỡ lỗi và các hệ thống con phát hiện vấn đề thời gian chạy khác được tích hợp dưới dạng các thành phần thời gian chạy), cho phép hiệu suất có thể so sánh với các chương trình C.

Dự án ban đầu được phát triển với mục tiêu lập trình đa luồng và vận hành hiệu quả trên các hệ thống đa lõi, bao gồm việc cung cấp các phương tiện ở cấp độ người vận hành để tổ chức tính toán song song và tương tác giữa các phương pháp thực hiện song song. Ngôn ngữ này cũng cung cấp khả năng bảo vệ tích hợp chống lại các khối bộ nhớ được phân bổ quá mức và cung cấp khả năng sử dụng trình thu gom rác.

Trong số những thay đổi trong bản phát hành mới:

  • Trong vòng lặp "for" khi xác định phạm vi giá trị, giờ đây bạn có thể chỉ định một hàm làm đối số cho biểu thức "phạm vi" để sử dụng hàm này làm trình vòng lặp, cho phép bạn tạo các trình vòng lặp của riêng mình cho bất kỳ chuỗi nào. Có thể chỉ định các hàm thuộc các loại sau: func(func() bool), func(func(K) bool) và func(func(K, V) bool). Một gói lặp mới đã được thêm vào, cung cấp các thao tác cơ bản để tổ chức việc lặp tuần tự. Ngoài ra, các tính năng mới để làm việc với các trình vòng lặp đã được thêm vào các gói lát cắt và bản đồ. Ví dụ: để lặp lại các khóa của một mảng kết hợp ở dạng được sắp xếp, giờ đây bạn có thể chỉ định “for i, x := range slice.Sorted(maps.Keys(m)) {…}”.
  • Đã thêm hỗ trợ sơ bộ (được kích hoạt qua GOEXPERIMENT=aliastypeparams) để sử dụng bí danh loại với tham số riêng của chúng trong các hàm chung, nhờ đó bạn có thể tạo các hàm để làm việc với nhiều loại cùng một lúc.
  • Bộ công cụ này có khả năng tích hợp sẵn để gửi dữ liệu đo từ xa đến máy chủ telemetry.go.dev. Dữ liệu đo từ xa được lưu trữ trong các tệp cục bộ có thể kiểm toán và chỉ bao gồm dữ liệu về việc sử dụng bộ công cụ (dữ liệu đo từ xa không được thêm vào các ứng dụng người dùng được thu thập bằng bộ công cụ). Theo mặc định, việc gửi dữ liệu đo từ xa đến máy chủ bên ngoài bị tắt (tùy chọn) và phải được bật bằng lệnh mới "go telemetry on". Việc gửi dữ liệu đo từ xa sẽ giúp xác định các bất thường và hành vi không bình thường, đánh giá sự tương tác của nhà phát triển với bộ công cụ và hiểu được những tính năng nào được yêu cầu nhiều nhất và những tính năng nào ít được sử dụng. Dự kiến ​​rằng các số liệu thống kê tích lũy sẽ cho phép hiện đại hóa bộ công cụ, cải thiện hiệu quả và tính dễ sử dụng của nó.
    Phát hành ngôn ngữ lập trình Go 1.23 có hỗ trợ đo từ xa
  • Đã thêm lệnh "go env -changed" để chỉ hiển thị các cài đặt có giá trị khác với giá trị mặc định.
  • Đã thêm lệnh "go mod gọn gàng -diff", cho phép bạn xuất các thay đổi dưới dạng bản vá ở định dạng khác thay vì thực hiện thay đổi đối với tệp.
  • Đã thêm trình phân tích phiên bản vào lệnh "go vet", hiển thị các mục quá mới để sử dụng trong phiên bản Go đã chọn. Ví dụ: máy phân tích sẽ đưa ra cảnh báo về việc sử dụng hàm Reflect.TypeFor được giới thiệu trong phiên bản 1.22 khi cố gắng sử dụng nó trong mô-đun yêu cầu hỗ trợ cho phiên bản 1.21.
  • Việc triển khai các loại time.Timer và time.Ticker đã được cải thiện, với những thay đổi liên quan đến tối ưu hóa bộ đệm và thu gom rác.
  • Đã thêm gói cấu trúc, xác định các loại để thay đổi thuộc tính cấu trúc.
  • Đã thêm gói duy nhất có chức năng chuẩn hóa các giá trị có thể so sánh được.
  • Đã thêm hỗ trợ cho lệnh godebug vào tệp go.mod và go.work để kiểm soát việc gỡ lỗi.
  • Đã thêm hỗ trợ thử nghiệm cho OpenBSD trên hệ thống RISC-V 64-bit (openbsd/riscv64). Cải thiện khả năng hỗ trợ. Linux, macOSARM64, RISC-V và WASI.
  • Hiệu suất trên kiến ​​trúc i386 và AMD64 đã được cải thiện khi bật PGO (Tối ưu hóa theo hướng dẫn hồ sơ) để tính đến các tính năng được xác định trong quá trình thực thi chương trình.

Nguồn: opennet.ru

Mua dịch vụ lưu trữ đáng tin cậy cho các trang web có bảo vệ DDoS, máy chủ VPS VDS 🔥 Mua dịch vụ hosting website đáng tin cậy với bảo vệ DDoS, máy chủ VPS VDS | ProHoster