ماذا يطبع البرنامج التالي؟
package main
func main() {
m := make(map[string]int, 3)
x := len(m)
m["Go"] = m["Go"]
y := len(m)
println(x, y)
}
الخيارات:
- 3 3
- 3 4
- 0 0
- 0 1
الإجابة: 0 1
شغِّله على Go play.
النقاط الأساسية:
- عند استخدام الدالة
makeلإنشاء خريطة، فإن المعطى الثاني ليس الطول الابتدائي ولا سعة الخريطة الناتجة. إنه مجرد تلميح لوقت تشغيل Go ليخصص مصفوفة أساسية كبيرة بما يكفي لاستيعاب العدد المحدد من المدخلات على الأقل. - طول الخريطة الناتجة (عدد المدخلات) هو صفر. و
m["Go"] = m["Go"]يكافئm["Go"] = 0. وبعد الإسناد، تحتوي الخريطة على مدخل واحد.