Việc phát hành ngôn ngữ lập trình Go 1.22 được trình bà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 kết hợp 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:
- Hỗ trợ xác định phạm vi số nguyên đã được thêm vào vòng lặp “for”, ví dụ: để lặp qua các giá trị từ 0 đến 9, giờ đây bạn có thể sử dụng vòng lặp “for i := range 10 {...}”.
- Đã thêm hỗ trợ thử nghiệm (GOEXPERIMENT=rangefunc) cho các hàm phạm vi cho vòng lặp for, cho phép bạn chỉ định một hàm làm trình vòng lặp. Ví dụ: "for i, x := range slice.Backward(s) {...}"
- Đã giải quyết một vấn đề tồn tại lâu dài với các vòng lặp khiến lệnh gọi đến coroutine (goroutine) chia sẻ các biến vòng lặp trong các lần lặp. Ví dụ: các giá trị mã := []string{"a", "b", "c"} cho _, v := giá trị phạm vi { go func() { fmt.Println(v) done
Nguồn: opennet.ru
