عند محاولة التكرار عبر الملفات الموجودة في مجلد وقراءة محتوياتها، قد تواجه الخطأ: "لا يمكن تعيين [] بايت إلى z (نوع السلسلة) في مهمة متعددة." دعونا نتفحص الكود والسبب وراء هذا الخطأ.
في مقتطف الكود المقدم، يتم استخدام وظيفة ReadFile() لقراءة محتوى الملف وإرجاع قيمتين: شريحة من البايتات ([]byte ) يحتوي على محتوى الملف والخطأ، إن وجد. يحاول الكود تعيين كلا القيمتين لنفس المتغير z، وهو من النوع string. ومع ذلك، هذا التعيين غير صالح لأنه لا يمكنك تعيين قيمة []بايت لمتغير سلسلة في مهمة متعددة.
لحل هذه المشكلة، تحتاج إلى فصل تعيين القيمتين اللتين تم إرجاعهما بواسطة ReadFile() :
buf, err := ioutil.ReadFile(z)
if err != nil {
log.Fatal(err)
}
هنا، buf من النوع []byte، وerr من نوع الخطأ، لذا فإن التعيين صالح. بمجرد قراءة محتوى الملف، يمكنك تحويله إلى سلسلة إذا لزم الأمر:
z = string(buf)
بدلاً من ذلك، يمكنك العمل مباشرة مع buf، الذي يمثل البايتات الأولية لمحتوى الملف، دون تحويلها إلى سلسلة. يمكن أن يؤدي ذلك إلى تحسين الأداء وتجنب مشكلات التحويل المحتملة. تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3