اختبارات

خريطة 1

ماذا يطبع البرنامج التالي؟


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. وبعد الإسناد، تحتوي الخريطة على مدخل واحد.