"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > هل استخدام "list.List" هو أفضل طريقة لإنشاء خريطة Go باستخدام مفاتيح السلسلة وقيم القائمة؟

هل استخدام "list.List" هو أفضل طريقة لإنشاء خريطة Go باستخدام مفاتيح السلسلة وقيم القائمة؟

تم النشر بتاريخ 2024-12-19
تصفح:338

Is Using `list.List` the Best Way to Create a Go Map with String Keys and List Values?

إنشاء خريطة لسلسلة إلى القائمة

المشكلة:

تريد إنشاء خريطة بمفاتيح من نوع السلسلة وقيم نوع القائمة. هل مقتطف الكود التالي هو النهج الصحيح:

package main يستورد ( "إف إم تي" "حاوية/قائمة" ) الوظيفة الرئيسية () { x := make(map[string]*list.List) x["key"] = list.New() س["مفتاح"].PushBack("القيمة") fmt.Println(x["مفتاح"].Front().Value)
package main

import (
    "fmt"
    "container/list"
)

func main() {
    x := make(map[string]*list.List)

    x["key"] = list.New()
    x["key"].PushBack("value")

    fmt.Println(x["key"].Front().Value)
}

الإجابة:

يقوم مقتطف الكود الذي قدمته بإنشاء خريطة لسلسلة إلى القائمة، ولكنه قد لا يكون النهج الأكثر كفاءة. عند العمل باستخدام القوائم في Go، تعد الشرائح بشكل عام خيارًا أكثر ملاءمة نظرًا لمزايا أدائها.

استخدام الشرائح:

يوضح مقتطف التعليمات البرمجية التالي كيفية استخدام الشرائح بدلاً من القوائم:

الحزمة الرئيسية استيراد "اف ام تي" الوظيفة الرئيسية () { س := جعل (خريطة [سلسلة] [] سلسلة) x["key"] = إلحاق(x["key"], "value") x["key"] = إلحاق(x["key"], "value1") fmt.Println(x["مفتاح"][0]) fmt.Println(x["مفتاح"][1])
package main

import "fmt"

func main() {
    x := make(map[string][]string)

    x["key"] = append(x["key"], "value")
    x["key"] = append(x["key"], "value1")

    fmt.Println(x["key"][0])
    fmt.Println(x["key"][1])
}

فوائد استخدام الشرائح:

توفر الشرائح العديد من المزايا مقارنة بالقوائم، بما في ذلك:

  • الأداء: تعتبر الشرائح أكثر كفاءة عند الوصول إلى العناصر وتعديلها مقارنة بالقوائم.
  • سهولة الاستخدام: تحتوي الشرائح على بناء جملة أبسط، مما يجعلها أسهل في العمل معها.
  • الوظائف المضمنة:
  • توفر الشرائح مجموعة واسعة من الوظائف المضمنة لعمليات مثل الفرز والبحث والتقطيع. .
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3