"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني الكتابة إلى بداية Bytes.Buffer في Golang؟

كيف يمكنني الكتابة إلى بداية Bytes.Buffer في Golang؟

تم النشر بتاريخ 2024-11-08
تصفح:453

How Can I Write to the Beginning of a Bytes.Buffer in Golang?

يتم كتابة البادئة في Golang

في Golang، البايتات. Buffer هو نوع مصمم لتسلسل السلسلة ومعالجتها بكفاءة. ومع ذلك، قد يواجه بعض المطورين الحاجة إلى الكتابة إلى بداية المخزن المؤقت، على عكس الأساليب المساعدة المضمنة (على سبيل المثال، WriteString) التي تُلحق فقط بالمخزن المؤقت.

الكتابة إلى بداية المخزن المؤقت.

بينما لا يتم تصدير buf الأساسي (مخزن البايت الداخلي) للبايتات. Buffer، فمن الممكن معالجة محتوياته بشكل غير مباشر. وإليك كيفية تحقيق ذلك:

buffer.WriteString("B")
s := buffer.String()
buffer.Reset()
buffer.WriteString("A"   s)
  1. الكتابة إلى نهاية المخزن المؤقت: في البداية، اكتب السلسلة "B" إلى نهاية المخزن المؤقت باستخدام WriteString.
  2. استرداد محتويات المخزن المؤقت: استخدم طريقة السلسلة لاسترداد محتويات المخزن المؤقت بالكامل بتنسيق سلسلة وتخزينها في متغير s.
  3. إعادة تعيين المخزن المؤقت: إعادة تعيين المخزن المؤقت إلى حالته الأولية، مما يؤدي إلى إزالة كل المحتوى السابق من المخزن المؤقت.
  4. الكتابة إلى بداية المخزن المؤقت: اكتب السلسلة "A" متبوعة بالسلسلة المستردة مسبقًا إلى المخزن المؤقت باستخدام WriteString.
عن طريق سلسلة "A" و s، نكتب بشكل فعال "A" في بداية المخزن المؤقت، متبوعًا بالمحتويات الأصلية.

مثال

الكود التالي يوضح العملية:

package main

import (
    "bytes"
    "fmt"
)

func main() {
    var buffer bytes.Buffer
    buffer.WriteString("B")
    s := buffer.String()
    buffer.Reset()
    buffer.WriteString("A"   s)
    fmt.Println(buffer.String())
}
الإخراج:

AB
AB
توفر هذه الإستراتيجية حلاً بديلاً للكتابة إلى بداية المخزن المؤقت في Golang على الرغم من القيود المفروضة على بايتات المكتبة القياسية. نوع المخزن المؤقت.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3