गोलैंग में बाइट स्लाइस ([]byte) को io.Reader में कैसे बदलें?
सभी को नमस्ते! मैंने अभी-अभी Go सीखना शुरू किया है और डेटा स्ट्रीम के साथ काम करते समय एक समस्या का सामना किया। मेरे पास एक फ़ंक्शन है जो इनपुट के रूप में `io.Reader` इंटरफ़ेस लेता है, लेकिन मैं उस डेटा के साथ काम कर रहा हूँ जो पहले से मेमोरी में बाइट स्लाइस (`[]byte`) के रूप में है।
यहाँ एक सरल उदाहरण है। मान लीजिए कि मैं HTTP अनुरोध से डेटा प्राप्त करता हूँ या फ़ाइल पढ़ता हूँ, लेकिन किसी कारण से मेरे पास पहले से `[]byte` है:
```go
package main
import (
"fmt"
"io"
"log"
)
func processData(r io.Reader) {
data, err := io.ReadAll(r)
if err != nil {
log.Fatal(err)
}
fmt.Println("प्राप्त:", string(data))
}
func main() {
myBytes := []byte("Hello, World! यह परीक्षण डेटा है।")
// myBytes को processData में कैसे पास करें?
// processData(myBytes) // संकलन त्रुटि!
}
```
मैं समझता हूँ कि `io.Reader` एक इंटरफ़ेस है, और इसे लागू करने के लिए `Read(p []byte) (n int, err error)` मेथड होना चाहिए। लेकिन क्या मुझे हर बार अपनी खुद की स्ट्रक्चर बनानी होगी और इस मेथड को लागू करना होगा?