كيفية تنسيق السلاسل في Go

كيفية تنسيق السلاسل في Go

أثناء كتابة كود Go ، ستجد أن تنسيق السلسلة مفيد جدًا في العديد من المواقف. قد تقوم بتحليل المدخلات أو صياغة مخرجات أكثر تعقيدًا من التسلسل البسيط. ربما تعمل بأنواع أخرى غير السلاسل العادية.



يستخدم تنسيق String في Go العملية المألوفة وبناء الجملة لوظيفة printf ، والتي تستخدمها أيضًا اللغات من Java إلى Haskell.





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





تنسيق السلسلة في Go

تشبه الوظائف في حزمة fmt نظيراتها ، مثل وظيفة printf في bash أو C. Go يشتق أفعال التنسيق الخاصة به من C.

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



لا يمكنك استخدام أفعال تنسيق السلاسل مع مطبعة و برنتلن طُرق. يمكنك استخدامها بطرق مثل برنتف و سبرينتف .

fmt.Println("This is a test %v", 90) 
fmt.Printf("This is a test %v", 90)

ال ٪في يقوم الفعل بطباعة أي قيمة بتنسيقه الافتراضي. ال برنتلن لا يتعرف الأسلوب على الأفعال ويطبع أي وسيطات يتلقاها. ال برنتف و سبرينتف تعمل كلتا الدالتين على تنسيق وسيطة السلسلة الأولى التي تمررها إليهم.





  نتيجة تنسيق الأعداد الصحيحة

وظائف تنسيق السلسلة في حزمة fmt

تنسيق السلاسل بتنسيق لغة البرمجة Go يتطلب منك استخدام وظيفة تنسيق سلسلة وفعل. تقوم الدالة بإرجاع السلسلة المنسقة ، والأفعال هي العناصر النائبة لمدخلات السلسلة.

ال برنتف الطريقة تنسق الإدخال وفقًا لمحدِّد التنسيق وتُرجع عدد البايتات المكتوبة أو الأخطاء.





كيفية تنزيل العروض على hulu
fmt.Printf("This is a test %v", 90) 

بشكل تقليدي ، لا داعي للقلق بشأن الأخطاء عند استخدام امتداد برنتف طريقة.

كيفية الوصول إلى السير في نظام التشغيل windows 10

ال سبرينتف الطريقة وفقًا للتنسيق المحدد وإرجاع النتيجة كسلسلة.

var result = fmt.Sprintf("This is a test %v", 90) 

ال Fprintf يقوم الأسلوب بصياغة السلسلة وكتابتها إلى كاتب (الأساليب التي تنفذ الامتداد io. كاتب واجهه المستخدم)

// write data to standard output 
result, err = fmt.Fprintf(writer, "This is a test %v", 90)

ال فسكانف طريقة المسح من قارئ وتنسيقات وفقًا للتنسيق المحدد.

var take string 

// read data from the given string
readString := strings.NewReader("This is a test")

read, err := fmt.Fscanf(reader, "%v", &take)

في هذه الحالة ، فإن فسكانف يفك تشفير السلسلة من القارئ إلى ملف يأخذ متغير و قرأ متغير يحمل نتيجة التنسيق.

أفعال تنسيق السلسلة

يوفر Go العديد من أفعال التنسيق التي يمكنك استخدامها مع وظائف تنسيق السلسلة.

هناك أفعال عامة لتنسيق السلاسل مثل ٪في الفعل في أمثلة وظائف تنسيق السلسلة. يمكنك استخدام أفعال تنسيق السلسلة العامة لتنسيق أي نوع بيانات.

يمكنك استخدام ال ٪#في فعل لإخراج أي قيمة ، فإن ٪ + v للمنشآت ، و ٪ ت الفعل لنوع أي قيمة ، و ٪٪ فعل لا قيم.

type any struct {  
name string
age int
isLoggedIn bool
}

var instance = any {
name: "John Doe",
age: 34,
isLoggedIn: true,
}

var result = fmt.Sprintf("This is a struct formatting example %+v", instance)
fmt.Println(result)

ال نتيجة متغير يحمل السلسلة المنسقة للبنية المُنشأة. إذا قمت بطباعته ، فيجب أن يبدو مثل هذا:

This is a struct formatting example {name:John Doe age:34 isLoggedIn:true}

توجد أفعال لتنسيق أنواع بيانات Go أصلية محددة ، بما في ذلك القنوات والمؤشرات.

٪ t منطقية.
٪د int ، int8 ، إلخ.
٪ d ،٪ # x في حالة الطباعة باستخدام٪ # v uint ، uint8 ، إلخ.
٪ ز float32 ، complex64 ، إلخ.
٪س سلسلة.
٪ ص تشان.
٪ P المؤشر.

ستحتاج إلى التأكد من أنك لا ترتكب أخطاء في الأفعال لأنها حساسة لحالة الأحرف ، مثل تشان و المؤشر أفعال.

تنسيق الأعداد الصحيحة والعائمة

توجد أفعال في تنسيق السلاسل لتنسيق الأعداد الصحيحة بتنسيق قواعد مختلفة . يمكنك استخدام أي من هذه الأفعال لتنسيق الأعداد الصحيحة

٪ب القاعدة 2
٪ ج الحرف الذي يمثله نقطة رمز Unicode المقابلة.
٪د القاعدة 10.
٪ س القاعدة 8.
٪ س الأساس 8 ببادئة 0o.
٪ q حرف حرفي مقتبس منفردة يهرب بأمان مع بناء جملة Go.
٪ x الأساس 16 ، بأحرف صغيرة لأحرف a-f.
٪ X الأساس 16 ، بأحرف كبيرة لـ A-F.
٪في تنسيق يونيكود: U + 1234 ؛ مثل 'U +٪ 04X'.

على سبيل المثال ، يمكنك تنسيق عدد صحيح باستخدام الامتداد ٪د الفعل:

كيفية حساب النسبة المئوية للتغيير في Excel
var result = fmt.Sprintf("This is an integer formatting example %d", 90) 
fmt.Println(result)

هذه هي أفعال تنسيق أرقام الفاصلة العائمة.

٪ب التدوين العلمي العشري مع الأس قوة اثنين ، على طريقة strconv. FormatFloat بتنسيق 'b' ، على سبيل المثال 123456 ص 78
٪و التدوين العلمي ، على سبيل المثال -1.234456e + 78
٪و الفاصلة العشرية ولكن بدون أس ، على سبيل المثال ، 123.456
٪F الفاصلة العشرية ولكن بدون أس ، على سبيل المثال ، 123.456
٪F مرادف لـ٪ f.
٪ ز ٪ e للأسس الكبيرة ، وبخلاف ذلك٪ f. الدقة أدناه.
٪ ز ٪ E للأسس الكبيرة ، وبخلاف ذلك٪ F
٪ x تدوين سداسي عشري (بقوة عشرية مكونة من أسين) ، على سبيل المثال ، -0x1.23abcp + 20.
٪ X تدوين سداسي عشري كبير ، على سبيل المثال -0X1.23 ABCP + 20.

فيما يلي مثال على تنسيق فاصلة عشرية بدون أس مع ٪F الفعل.

var result = fmt.Sprintf("This is a floating point formatting example %f", 432.9503) 
fmt.Println(result)

يمكنك دائمًا استخدام الأفعال العامة إذا كنت غير متأكد من النوع.

تنسيق السلاسل والبايت

السلاسل وشرائح أنواع البايت متشابهة جدًا في Go. هذه هي علامات تنسيق السلاسل والبايت.

٪س بايتات السلسلة أو الشريحة غير المفسرة
٪ q سلسلة مقتبسة مزدوجة تم إفلاتها بأمان باستخدام Go syntax
٪ x الأساس 16 ، أحرف صغيرة ، حرفان لكل بايت
٪ X الأساس 16 ، الأحرف الكبيرة ، حرفان لكل بايت

فيما يلي مثال على تنسيق سلسلة باستخدام الامتداد ٪س الفعل.

var score = "example" 
var result = fmt.Sprintf("This is a string formatting example %s", score)
fmt.Println(result)

حزمة fmt ضرورية لبرمجة بايثون

ال FMT تحتوي الحزمة على معظم الوظائف التي ستحتاجها لتنسيق السلسلة. يوفر Go أيضًا ملف سلاسل حزمة للتلاعب بالسلسلة و سجل الحزمة التي يمكن تنسيق سلاسل للتسجيل.

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