Avatar ·

كيفية تقسيم سلسلة نصية حسب المسافات في Go؟ (Split string on whitespace)

مرحباً بالجميع! بدأت للتو في تعلم Go، وواجهت مشكلة. أحتاج إلى تقسيم سلسلة نصية إلى كلمات، متجاهلاً جميع أحرف المسافات البيضاء (مسافات، علامات تبويب، فواصل أسطر). حاولت استخدام `strings.Split()`، لكنها تعمل فقط مع فاصل واحد. على سبيل المثال، إذا كتبت: ```go package main import ( "fmt" "strings" ) func main() { s := "hello world\tfoo\nbar" parts := strings.Split(s, " ") fmt.Println(parts) // ["hello", "", "", "world\tfoo\nbar"] } ``` أحصل على فوضى — سلاسل فارغة، وعلامات التبويب غير معتبرة. رأيت أنه في لغات أخرى (Python, Java) توجد دوال مدمجة `split()` بدون وسائط، والتي تعالج أي مسافات بيضاء تلقائياً. هل يوجد شيء مشابه في Go؟ أم يجب كتابة دالة خاصة؟ سمعت أنه يمكن استخدام `regexp`، لكني أخشى أن يؤدي ذلك إلى إبطاء البرنامج. أرشدوني إلى الطريقة المثلى. المهم: أحتاج إلى تقسيم إلى كلمات، وليس فقط إزالة المسافات الزائدة. مثال: "a b\tc" → ["a", "b", "c"].