ในภาษาเก่าเมื่อต้องการลบรายการด้วยคีย์k
จากแผนที่ที่แสดงโดยm
หนึ่งเขียนคำสั่ง
m[k] = value, false
ไวยากรณ์นี้เป็นกรณีพิเศษเฉพาะการมอบหมายแบบสองต่อหนึ่งเท่านั้น มันต้องผ่านค่า (มักจะถูกละเว้น) ที่ถูกประเมิน แต่ถูกทิ้งรวมถึงบูลีนที่เกือบจะเป็นค่าคงที่เท็จเสมอ มันทำงานได้ แต่แปลกและเป็นประเด็นของการโต้แย้ง
ใน Go 1 ไวยากรณ์นั้นหายไป มีฟังก์ชั่นในตัวใหม่, delete
. โทร
delete(m, k)
จะลบรายการแผนที่ที่นิพจน์ดึงm[k]
มา ไม่มีค่าส่งคืน การลบรายการที่ไม่มีอยู่คือไม่มี
กำลังอัปเดต: การทำงานgo fix
จะแปลงนิพจน์ของฟอร์มm[k] = value, false
เป็นdelete(m, k)
เมื่อชัดเจนว่าค่าที่ละเว้นสามารถละทิ้งได้อย่างปลอดภัยจากโปรแกรมและfalse
อ้างอิงถึงค่าคงที่บูลีนที่กำหนดไว้ล่วงหน้า เครื่องมือแก้ไขจะตั้งค่าสถานะการใช้งานอื่น ๆ ของไวยากรณ์สำหรับการตรวจสอบโดยโปรแกรมเมอร์
sessions["moo"] = sessions["moo"], false;
(หรือเป็นสิ่งที่ผิด?)