استخدم 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 للقيام بذلك بشكل أنيق وسريع؟ ربما هناك دالة من المكتبة القياسية؟ سأكون ممتناً لأمثلة الكود والشرح.