/ / Có gì mới trong phiên bản Go 1.18

Có gì mới trong phiên bản Go 1.18

Ngôn ngữ lập trình Go đã phát triển rất nhiều kể từ khi nó được xuất bản lần đầu tiên vào năm 2009. Go 1.18 là một bản phát hành rất được mong đợi do hỗ trợ cho generic và nhiều cập nhật quan trọng khác.

Phát hành phiên bản 1.18 vào tháng 3 năm 2022. Dưới đây là thông tin chi tiết về những thay đổi quan trọng nhất.

Hỗ trợ cho Generics

Lập trình chung cho phép bạn viết các hàm có thể chấp nhận và trả về các kiểu linh hoạt hơn.

Trước khi hỗ trợ cho generic, bạn cần phải trình bày rõ ràng các loại tham số và loại trả về. Dạng đơn giản nhất của generics cho phép bạn chỉ định các tham số không định kiểu:

func PrintAnything[T any](thing T) {
fmt.Println(thing)
}

Nhưng thuốc generic cung cấp nhiều sức mạnh hơn là chỉ thế này. Bạn có thể khai báo hầu hết mọi sự kết hợp và mức độ chi tiết của kiểu cho các tham số. Ví dụ, bạn có thể sử dụng hạn chế gói để viết một hàm hoạt động trên bất kỳ giá trị nào mà bạn có thể đặt hàng. Điều này bao gồm int, float và string. Đây là một ví dụ minh họa cú pháp:

import "golang.org/x/exp/constraints"

func Max[T constraints.Ordered](input []T) (max T) {
for _, v := range input {
if v > max {
max = v
}
}

return max
}

LÀM VIDEO TRONG NGÀY

Lưu ý rằng hàm này sử dụng kiểu chung, ràng buộc.để khai báo tham số và kiểu trả về của nó.

Generics cung cấp sự không chắc chắn và tính linh hoạt trong mã. Đề xuất Generics và các thay đổi tương thích ngược.

Kiểm tra lông tơ

Fuzzing là một kỹ thuật kiểm tra phần mềm xác nhận một chương trình có dữ liệu sai, không mong muốn hoặc không thể đoán trước.

Các thử nghiệm gói giới thiệu fuzzing trong 1.18, vì vậy để xác định fuzz, bạn phải nhập nó từ thư viện chuẩn:

import "testing"

Sau khi nhập thử nghiệm gói, bạn có thể chuyển một số nhận dạng của loại * thử nghiệm.F đến chức năng kiểm tra.

func testFunc(f *testing.F) {
}

Fuzzing tạo ra các tham số đầu vào cho mã thử nghiệm. Kết quả của việc làm mờ là không thể đoán trước vì các đầu vào không do người dùng xác định. Fuzzing sẽ giúp bạn viết các bài kiểm tra mã tốt hơn và bắt các lỗi mà bạn không biết là tồn tại.

Hỗ trợ không gian làm việc

Không gian làm việc là các thư mục của mã nguồn tương tự tạo nên một dự án hoặc một đơn vị lớn hơn. Không gian làm việc giúp quản lý và gỡ lỗi mã dễ dàng hơn bằng cách nhóm các mã tương tự dựa trên chức năng.

Thông thường, bạn chia nhỏ các dự án Go thành mã nguồn (src) và các tệp thực thi (thùng rác). Chuỗi công cụ Go xây dựng mã nguồn từ mã nguồn trước đây thành các tệp thực thi trong mã nguồn sau. Không gian làm việc Go cho phép các nhà phát triển làm việc với nhiều không gian làm việc bằng cách sử dụng mô-đun Go với một mô-đun chính cụ thể.

Lệnh để tạo không gian làm việc là:

$ go work <command>

Sử dụng công việc lệnh với các lệnh con như:

  • trong đó → tạo một không gian làm việc trong thư mục được chỉ định.
  • sử dụng → thêm một mô-đun mới vào go.work, tệp không gian làm việc go.
  • biên tập → chỉnh sửa tệp không gian làm việc go.
  • đồng bộ hóa → đồng bộ hóa các phần phụ thuộc từ danh sách xây dựng đến các mô-đun không gian làm việc.

Việc bao gồm các không gian làm việc sẽ làm tăng năng suất theo kế hoạch trong việc phát triển ngôn ngữ.

Cải tiến hiệu suất

Phiên bản Go 1.18 hiện hỗ trợ ARM64 Apple M1 và PowerPC 64-bit trong quy ước gọi ABI. Điều này dẫn đến hiệu suất CPU tăng hơn 10% cho người dùng các thiết bị này.

Các biến đã khai báo và không sử dụng trong các hàm hiện được ghi lại dưới dạng lỗi khi biên dịch chương trình.

Các đi xây dựng cùng với các lệnh liên quan khác, hỗ trợ -asan cờ, hỗ trợ khả năng tương tác với C / C ++. Điều này sẽ giúp các nhà phát triển Go sử dụng các chương trình Go với các chương trình C và C ++.

Các cập nhật quan trọng khác

Các đi lấy lệnh không còn cài đặt các gói ở chế độ nhận biết mô-đun, đây là một thay đổi lớn so với khi bạn lần đầu tiên bắt đầu với Go. Các đi cài đặt lệnh thay thế mắc phải để điều chỉnh sự phụ thuộc của mô-đun trên các không gian làm việc.

Vì trình kiểm tra loại hiện xử lý các thông số chung, các thông báo lỗi có thể ghi khác so với các phiên bản trước.

Thời gian biên dịch chương trình có thể chậm hơn trong 1.18. Nhưng điều này sẽ không ảnh hưởng đến thời gian thực thi khi Go đã biên dịch chương trình của bạn.

Bạn có thể tìm thấy chi tiết đầy đủ về tất cả những thay đổi mới nhất trong ghi chú phát hành cho Go 1.18.

Go 1.18 có một số bổ sung đa dạng

Sử dụng Go 1.18, giờ đây bạn có thể viết mã chung, kiểm tra hiệu quả bằng cách sử dụng fuzzing và chuyển đổi giữa các mô-đun Go bằng không gian làm việc. Bạn thậm chí có thể viết mã hoạt động cùng với các chương trình C và C ++.


Màn hình máy tính với mắt và mảnh trên bàn

Golang có đáng học ngay hôm nay không?

Đọc tiếp


Giới thiệu về tác giả

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *