ترتيب التعيين في خرائط Go
مع الأخذ في الاعتبار رمز Go التالي:
package main import "fmt" type Vertex struct { Lat, Long float64 } var m map[string]Vertex func main() { m = make(map[string]Vertex) m["Bell Labs"] = Vertex{ 40.68433, 74.39967, } m["test"] = Vertex{ 12.0, 100, } fmt.Println(m["Bell Labs"]) fmt.Println(m) }
النتيجة:
{40.68433 74.39967} map[Bell Labs:{40.68433 74.39967} test:{12 100}]
تعديل إعلان قمة الاختبار عن طريق تحريك "}" 4 مسافات لليمين، كما يلي:
m["test"] = Vertex{ 12.0, 100, }
تغيير الإخراج إلى:
{40.68433 74.39967} map[test:{12 100} Bell Labs:{40.68433 74.39967}]
شرح:
تعتمد خريطة "الترتيب" في Go على وظيفة التجزئة العشوائية المستخدمة لـ منع هجمات رفض الخدمة. وفقًا لمتتبع مشكلات Go (http://code.google.com/p/go/issues/detail?id=2630)، لا يتم ضمان ترتيب الخريطة وفقًا للمواصفات.
وفقًا للمواصفات ، الخريطة عبارة عن مجموعة غير مرتبة من العناصر ذات مفاتيح فريدة. قد يؤدي التنفيذ المستقبلي إلى تغيير ترتيب الخريطة دون تعديله في التعليمات البرمجية الخاصة بك. ولذلك، فإن الاعتماد على ترتيب معين للخريطة ليس ممارسة موصى بها في Go.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3