Dalam bahasa lama, untuk menghapus entri dengan kunci k
dari peta yang diwakili oleh m
, seseorang menulis pernyataan,
m[k] = value, false
Sintaks ini adalah kasus khusus yang khas, satu-satunya tugas dua-ke-satu. Untuk itu diperlukan melewati nilai (biasanya diabaikan) yang dievaluasi tetapi dibuang, ditambah boolean yang hampir selalu bernilai false konstan. Itu melakukan pekerjaan tetapi aneh dan titik pertengkaran.
Dalam Go 1, sintaks itu telah hilang; alih-alih ada fungsi bawaan baru delete
,. Panggilan
delete(m, k)
akan menghapus entri peta yang diambil oleh ekspresi m[k]
. Tidak ada nilai balik. Menghapus entri yang tidak ada adalah no-op.
Memperbarui: Menjalankan go fix
akan mengubah ekspresi formulir m[k] = value, false
menjadi delete(m, k)
ketika jelas bahwa nilai yang diabaikan dapat dengan aman dibuang dari program dan false
mengacu pada konstanta boolean yang telah ditentukan. Alat perbaikan akan menandai penggunaan sintaks lain untuk diperiksa oleh programmer.
sessions["moo"] = sessions["moo"], false;
(? Atau yang salah)