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 CopyN() en el lenguaje Go se usa para copiar «n» bytes desde el origen al destino. Y si la interfaz ReaderFrom implementa dst , la copia se implementa haciendo uso de ella. Además, esta función se define en el paquete io. Aquí, debe importar el paquete «io» para usar estas funciones.
Sintaxis:
func CopyN(dst Writer, src Reader, n int64) (written int64, err error)
Aquí, «dst» es el destino, «src» es la fuente desde donde se copia el contenido al destino y «n» es el límite de la cantidad de bytes que se copiarán desde la fuente.
Valor devuelto: Devuelve el número total de bytes de tipo int64 que se copian en el «dst» y también devuelve el primer error que se enfrenta al copiar de src a dst, si lo hay. Además, el número de bytes devueltos es «n» si y solo si el error es «nil».
Los siguientes ejemplos ilustran el uso del método anterior:
Ejemplo 1:
// Golang program to illustrate the usage of // io.CopyN() function // Including main package package main // Importing fmt, io, os, and strings import ( "fmt" "io" "os" "strings" ) // Calling main func main() { // Defining source src := strings.NewReader("GeeksforGeeks\n") // Defining destination using Stdout dst := os.Stdout // Calling CopyN method with its parameters bytes, err := io.CopyN(dst, src, 5) // If error is not nil then panics if err != nil { panic(err) } // Prints output fmt.Printf("\nThe number of bytes are: %d\n", bytes) }
Producción:
Geeks The number of bytes are: 5
Aquí, el número de bytes devueltos es igual a «n» ya que el error es «nil».
Ejemplo 2:
// Golang program to illustrate the usage of // io.CopyN() function // Including main package package main // Importing fmt, io, os, and strings import ( "fmt" "io" "os" "strings" ) // Calling main func main() { // Defining source src := strings.NewReader("CS-Portal\n") // Defining destination using Stdout dst := os.Stdout // Calling CopyN method with its parameters bytes, err := io.CopyN(dst, src, 20) // If error is not nil then panics if err != nil { panic(err) } // Prints output fmt.Printf("The number of bytes are: %d\n", bytes) }
Producción:
CS-Portal panic: EOF goroutine 1 [running]: main.main() /tmp/sandbox691649995/prog.go:29 +0x137
Aquí, en el ejemplo anterior, se usa el método de strings NewReader() desde donde se lee el contenido que se va a copiar. Y «Stdout» se usa aquí para crear un descriptor de archivo predeterminado donde se escribe el contenido copiado. Además, aquí la cantidad de bytes devueltos es menor que «n», por lo que se arroja un error EOF arriba.
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA