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

كيفية تحويل سلاسل UTF-8 بكفاءة إلى مصفوفات البايت في Go؟

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

How to Efficiently Convert UTF-8 Strings to Byte Arrays in Go?

تحويل سلاسل UTF-8 إلى مصفوفات بايت

يتطلب إلغاء تنظيم JSON إدخال شريحة بايت، بينما يتم تخزين السلاسل بتنسيق UTF-8 في Go . تستكشف هذه المقالة التحويل الفعال لسلاسل UTF-8 إلى صفائف بايت.

يسمح Go بتحويل السلاسل إلى شرائح بايت، وإنشاء نسخة من بايتات السلسلة :

s := "some text"
b := []byte(s)
ومع ذلك، بالنسبة للسلاسل الكبيرة، يكون هذا الأسلوب غير فعال بسبب النسخ.

Using io.Reader

البديل الفعال هو استخدام strings.NewReader() لإنشاء io.Reader الذي يقرأ من السلسلة دون نسخ:

s := `{ "somekey": "somevalue" }`

var result interface{}
err := json.NewDecoder(strings.NewReader(s)).Decode(&result)
يتجنب هذا الأسلوب نسخ السلسلة.

نصوص JSON الصغيرة

بالنسبة لنصوص JSON الصغيرة، يظل التحويل المباشر خيارًا سريعًا:

s := `{ "somekey": "قيمة ما" }` واجهة نتيجة فار {} err := json.Unmarshal([]byte(s), &result)
s := `{ "somekey": "somevalue" }`

var result interface{}
err := json.Unmarshal([]byte(s), &result)
عند قراءة JSON من io.Reader (على سبيل المثال، ملف أو شبكة)، قم بتمرير io. القارئ مباشرة إلى json.NewDecoder() دون قراءة سلسلة وسيطة.

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

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

Copyright© 2022 湘ICP备2022001581号-3