Función io.MultiReader() en Golang con ejemplos

En el lenguaje Go, los paquetes io proporcionan interfaces fundamentales para las primitivas de E/S. Y su trabajo principal es encerrar las implementaciones en curso de tal rey de los primitivos. La función MultiReader() en el lenguaje Go se usa para devolver un «Lector» que es la concatenación lógica de todos los lectores de entrada indicados. Sin embargo, estos lectores indicados se leen en una secuencia. Y después de que toda la entrada indicada devuelva un EOF, es decir, al final del archivo, «Leer» devolverá un EOF. Además, esta función se define en el paquete io. Aquí, debe importar el paquete «io» para usar estas funciones.

Sintaxis:

func MultiReader(readers ...Reader) Reader

Aquí, «lectores» es el número de lectores indicados.

Valor de retorno: Devuelve un “Lector” que es la concatenación lógica de todos los lectores de entrada dados. Y si alguno de los lectores indicados devuelve un error no nulo o un error que no es EOF, entonces «Leer» devuelve ese error.

Los siguientes ejemplos ilustran el uso del método anterior:

Ejemplo 1:

// Golang program to illustrate the usage of
// io.MultiReader() function
  
// Including main package
package main
  
// Importing fmt, io, strings, and os
import (
    "fmt"
    "io"
    "os"
    "strings"
)
  
// Calling main
func main() {
  
    // Defining readers using NewReader method
    reader1 := strings.NewReader("Geeks\n")
    reader2 := strings.NewReader("GfG\n")
    reader3 := strings.NewReader("CS\n")
  
    // Calling MultiReader method with its parameters
    r := io.MultiReader(reader1, reader2, reader3)
  
    // Calling Copy method with its parameters
    Reader, err := io.Copy(os.Stdout, r)
  
    // If error is not nil then panics
    if err != nil {
        panic(err)
    }
  
    // Prints output
    fmt.Printf("n: %v\n", Reader)
}

Producción:

Geeks
GfG
CS
n: 13

En el ejemplo anterior, el método Copy() se usa para devolver el resultado de todos los lectores concatenados, y el método de strings NewReader() se usa desde donde se escribe el contenido que se va a leer.

Ejemplo 2:

// Golang program to illustrate the usage of
// io.MultiReader() function
  
// Including main package
package main
  
// Importing fmt, io, strings, and os
import (
    "fmt"
    "io"
    "os"
    "strings"
)
  
// Calling main
func main() {
  
    // Defining readers using NewReader method
    reader1 := strings.NewReader("104\n")
    reader2 := strings.NewReader("33.3\n")
    reader3 := strings.NewReader("703243242\n")
  
    // Calling MultiReader method with its parameters
    r := io.MultiReader(reader1, reader2, reader3)
  
    // Calling Copy method with its parameters
    Reader, err := io.Copy(os.Stdout, r)
  
    // If error is not nil then panics
    if err != nil {
        panic(err)
    }
  
    // Prints output
    fmt.Printf("n: %v\n", Reader)
}

Producción:

104
33.3
703243242
n: 19

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *