كيفية تحويل شريحة بايت ([]byte) إلى io.Reader في Go؟
مرحباً بالجميع! أنا مبتدئ في Go وواجهت مشكلة أثناء العمل مع تدفقات البيانات. لدي دالة تقبل io.Reader لقراءة البيانات، مثلاً من ملف أو استجابة HTTP. لكن في حالتي، البيانات موجودة بالفعل في الذاكرة على شكل شريحة بايت ([]byte) تم الحصول عليها بعد فك ضغط أرشيف أو معالجة JSON.
إليك مثال مبسط لما أحاول فعله:
package main
import (
"fmt"
"io"
"os"
)
func main() {
data := []byte("Hello, World! هذه بيانات اختبارية في الذاكرة")
// كيف يمكن تمرير data إلى دالة تنتظر io.Reader؟
// حاولت تمرير data مباشرة لكني أحصل على خطأ ترجمة:
// cannot use data (type []byte) as type io.Reader in argument to processData
processData(data)
}
func processData(r io.Reader) {
content, _ := io.ReadAll(r)
fmt.Println(string(content))
}
أفهم أن []byte و io.Reader هما