Trong ngôn ngữ cũ, để xóa mục nhập bằng khóa k
từ bản đồ được đại diện bởi m
, người ta đã viết câu lệnh,
m[k] = value, false
Cú pháp này là một trường hợp đặc biệt, nhiệm vụ hai chỉ một. Nó yêu cầu chuyển một giá trị (thường bị bỏ qua) được đánh giá nhưng bị loại bỏ, cộng với một giá trị boolean gần như luôn luôn là sai. Nó đã làm công việc nhưng kỳ quặc và một điểm gây tranh cãi.
Trong Go 1, cú pháp đó đã biến mất; thay vào đó là một chức năng tích hợp mới , delete
. Cuộc gọi
delete(m, k)
sẽ xóa mục nhập bản đồ được lấy bởi biểu thức m[k]
. Không có giá trị quay lại. Xóa một mục không tồn tại là không có.
Cập nhật: Chạy go fix
sẽ chuyển đổi các biểu thức của biểu mẫu m[k] = value, false
thành delete(m, k)
khi rõ ràng rằng giá trị bị bỏ qua có thể được loại bỏ một cách an toàn khỏi chương trình và false
tham chiếu đến hằng số boolean được xác định trước. Công cụ sửa lỗi sẽ đánh dấu các cách sử dụng cú pháp khác để lập trình viên kiểm tra.
sessions["moo"] = sessions["moo"], false;
(hoặc điều đó có sai không?)