أثناء كتابة كود Go ، ستجد أن تنسيق السلسلة مفيد جدًا في العديد من المواقف. قد تقوم بتحليل المدخلات أو صياغة مخرجات أكثر تعقيدًا من التسلسل البسيط. ربما تعمل بأنواع أخرى غير السلاسل العادية.
يستخدم تنسيق String في Go العملية المألوفة وبناء الجملة لوظيفة printf ، والتي تستخدمها أيضًا اللغات من Java إلى Haskell.
يوفر Go طرقًا متنوعة لتنسيق السلاسل بتنسيق FMT حزمة. يمكنك استخدام الوظائف والأفعال لتنسيق السلسلة بناءً على العملية أو المدخلات التي تريد تنسيقها.
تنسيق السلسلة في Go
تشبه الوظائف في حزمة fmt نظيراتها ، مثل وظيفة printf في bash مسخ. يشتق Go أفعال التنسيق الخاصة به من C.
انت تستخدم أفعال تنسيق السلسلة كعناصر نائبة لقيم المتغير في سلسلة تحتوي. يمكنك بعد ذلك تمرير سلسلة التنسيق هذه إلى وظيفة مثل برنتف، جنبًا إلى جنب مع القيم المقابلة لتلك العناصر النائبة.
لا يمكنك استخدام أفعال تنسيق السلاسل مع مطبعة و برنتلن طُرق. يمكنك استخدامها بطرق مثل برنتف و سبرينتف.
FMT. Println ("هذا اختبار٪ v"، 90)
FMT. Printf ("هذا اختبار٪ v"، 90)
ال ٪الخامس يقوم الفعل بطباعة أي قيمة بتنسيقه الافتراضي. ال برنتلن لا يتعرف الأسلوب على الأفعال ويطبع أي وسيطات يتلقاها. ال
برنتف و سبرينتف تعمل كلتا الدالتين على تنسيق وسيطة السلسلة الأولى التي تمررها إليهم.وظائف تنسيق السلسلة في حزمة FMT
تنسيق السلاسل بتنسيق لغة البرمجة Go يتطلب منك استخدام وظيفة تنسيق سلسلة وفعل. تقوم الدالة بإرجاع السلسلة المنسقة ، والأفعال هي العناصر النائبة لمدخلات السلسلة.
ال برنتف الطريقة تنسق الإدخال وفقًا لمحدِّد التنسيق وتُرجع عدد البايتات المكتوبة أو الأخطاء.
FMT. Printf ("هذا اختبار٪ v"، 90)
بشكل تقليدي ، لا داعي للقلق بشأن الأخطاء عند استخدام امتداد برنتف طريقة.
ال سبرينتف الطريقة وفقًا للتنسيق المحدد وإرجاع النتيجة كسلسلة.
فار النتيجة = fmt. Sprintf ("هذا اختبار٪ v" ، 90)
ال Fprintf يقوم الأسلوب بصياغة السلسلة وكتابتها إلى كاتب (الأساليب التي تنفذ الامتداد io. كاتب واجهه المستخدم)
// كتابة البيانات إلى الإخراج القياسي
النتيجة ، يخطئ = fmt. Fprintf (الكاتب ، "هذا اختبار٪ v" ، 90)
ال فسكانف طريقة المسح من قارئ وتنسيقات وفقًا للتنسيق المحدد.
فار يأخذ سلسلة
// قراءة البيانات من السلسلة المحددة
readString: = سلاسل. NewReader ("هذا اختبار")
قراءة ، يخطئ: = fmt. Fscanf (القارئ ، "٪ v" ، & أخذ)
في هذه الحالة ، فإن ملف فسكانف يفك تشفير السلسلة من القارئ إلى ملف يأخذ متغير و قرأ متغير يحمل نتيجة التنسيق.
أفعال تنسيق السلسلة
يوفر Go العديد من أفعال التنسيق التي يمكنك استخدامها مع وظائف تنسيق السلسلة.
هناك أفعال عامة لتنسيق السلاسل مثل ٪الخامس أمثلة على وظائف دوال تنسيق السلسلة. يمكنك استخدام أفعال تنسيق السلسلة العامة لتنسيق أي نوع بيانات.
يمكنك استخدام ال ٪#الخامس فعل لإخراج أي قيمة ، فإن ٪ + v للمنشآت ، و ٪ ت الفعل لنوع أي قيمة ، و %% فعل لا قيم.
يكتب أي هيكل {
اسم سلسلة
سن int
isLoggedIn منطقي
}فار المثال = أي {
الاسم: "John Doe" ،
سن: 34,
isLoggedIn: حقيقي,
}
فار النتيجة = fmt. Sprintf ("This is a هيكل مثال على التنسيق٪ + v "، مثال)
FMT. Println (نتيجة)
ال نتيجة متغير يحمل السلسلة المنسقة للبنية المُنشأة. إذا قمت بطباعته ، فيجب أن يبدو مثل هذا:
هذا مثال على التنسيق الهيكلي {name: John Doe age: 34 isLoggedIn:حقيقي}
توجد أفعال لتنسيق أنواع بيانات Go أصلية محددة ، بما في ذلك القنوات والمؤشرات.
الفعل | وظائف |
---|---|
٪ t | منطقية. |
٪د | int ، int8 ، إلخ. |
٪ d ،٪ # x في حالة الطباعة باستخدام٪ # v | uint ، uint8 ، إلخ. |
٪ ز | float32 ، complex64 ، إلخ. |
٪س | سلسلة. |
٪ ص | تشان. |
٪ P | المؤشر. |
ستحتاج إلى التأكد من أنك لا ترتكب أخطاء في الأفعال لأنها حساسة لحالة الأحرف ، مثل تشان و المؤشر أفعال.
تنسيق الأعداد الصحيحة والعائمة
توجد أفعال في تنسيق السلاسل لتنسيق الأعداد الصحيحة بتنسيق قواعد مختلفة. يمكنك استخدام أي من هذه الأفعال لتنسيق الأعداد الصحيحة
الفعل | وظائف |
---|---|
٪ب | القاعدة 2 |
٪ ج | الحرف الذي يمثله نقطة رمز Unicode المقابلة. |
٪د | القاعدة 10. |
٪ o | القاعدة 8. |
٪ س | الأساس 8 ببادئة 0o. |
٪ q | تم هروب حرف واحد مقتبس بأمان مع بناء جملة Go. |
٪ x | الأساس 16 ، بأحرف صغيرة لـ a-f. |
٪ X | الأساس 16 ، بأحرف كبيرة لـ A-F. |
٪ ش | تنسيق يونيكود: U + 1234 ؛ مثل "U +٪ 04X". |
على سبيل المثال ، يمكنك تنسيق عدد صحيح باستخدام الامتداد ٪د الفعل:
فار النتيجة = fmt. Sprintf ("هذا مثال على تنسيق عدد صحيح٪ d" ، 90)
FMT. Println (نتيجة)
هذه هي أفعال تنسيق أرقام الفاصلة العائمة.
الفعل | وظائف |
---|---|
٪ب | التدوين العلمي العشري مع الأس قوة اثنين ، على طريقة 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 الفعل.
فار النتيجة = fmt. Sprintf ("هذا مثال على تنسيق النقطة العائمة٪ f" ، 432.9503)
FMT. Println (نتيجة)
يمكنك دائمًا استخدام الأفعال العامة إذا كنت غير متأكد من النوع.
تنسيق السلاسل والبايت
السلاسل وشرائح أنواع البايت متشابهة جدًا في Go. هذه هي علامات تنسيق السلاسل والبايت.
الفعل | وظائف |
---|---|
٪س | بايتات السلسلة أو الشريحة غير المفسرة |
٪ q | سلسلة مقتبسة مزدوجة تم إفلاتها بأمان باستخدام Go syntax |
٪ x | الأساس 16 ، أحرف صغيرة ، حرفان لكل بايت |
٪ X | الأساس 16 ، الأحرف الكبيرة ، حرفان لكل بايت |
فيما يلي مثال على تنسيق سلسلة باستخدام الامتداد ٪س الفعل.
فار النتيجة = "مثال"
فار النتيجة = fmt. Sprintf ("This is a سلسلة مثال على التنسيق٪ s "، النتيجة)
FMT. Println (نتيجة)
حزمة fmt ضرورية لبرمجة بايثون
ال FMT تحتوي الحزمة على معظم الوظائف التي ستحتاجها لتنسيق السلسلة. يوفر Go أيضًا ملف سلاسل حزمة للتلاعب بالسلسلة و سجل الحزمة التي يمكن تنسيق سلاسل للتسجيل.
ال FMT الحزمة لديها الوظائف التي تنفذ io. كاتب و io. قارئ واجهات. ستجده مفيدًا للعديد من حالات الاستخدام مثل إنشاء تطبيقات الويب وسطر الأوامر.