Avatar ·

كيفية دمج شريحة من السلاسل النصية في سلسلة نصية واحدة في Go؟

استخدم strings.Join

مرحباً بالجميع! لقد بدأت للتو في تعلم Go وواجهت مشكلة أثناء العمل مع السلاسل النصية. لدي شريحة (slice) من السلاسل النصية، على سبيل المثال:
words := []string{"Hello", "world", "from", "Go"}
أحتاج إلى دمج كل هذه السلاسل النصية في سلسلة واحدة، مع فصلها بمسافة، للحصول على النتيجة: `"Hello world from Go"`. في لغات أخرى (مثل Python) كنت سأستخدم ببساطة `" ".join(words)`، لكن في Go لا توجد مثل هذه الدالة. حاولت كتابة حلقة يدوياً، لكنها أصبحت ضخمة ولست متأكداً من فعاليتها:
result := ""
for i, word := range words {
    if i > 0 {
        result += " "
    }
    result += word
}
هذا يعمل، لكنني سمعت أن دمج السلاسل النصية باستخدام `+=` في حلقة قد يكون بطيئاً بسبب التخصيص المستمر للذاكرة. هل هناك طريقة مدمجة في Go للقيام بذلك بشكل أنيق وسريع؟ ربما هناك دالة من المكتبة القياسية؟ سأكون ممتناً لأمثلة الكود والشرح.