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 Pipe() en el lenguaje Go se usa para crear una canalización simultánea en memoria y se puede aplicar para vincular el código que espera un io.Reader con el código que espera un io.Writer . Aquí, las lecturas y las escrituras en la tubería se emparejan uno a uno, excepto cuando se requieren más de una «lectura» para tomar una sola «escritura». Esto indica que cada escritura en el PipeWriter se detiene hasta que haya saciado una o más lecturas del PipeReader.que toma completamente los datos escritos.
Sin embargo, los datos se rastrean inmediatamente desde la escritura hasta las lecturas relacionadas y no hay almacenamiento en búfer interno. Además, esta función se define en el paquete io. Aquí, debe importar el paquete «io» para usar estas funciones.
Sintaxis:
func Pipe() (*PipeReader, *PipeWriter)
Aquí, «PipeReader» es un puntero a PipeReader. Donde PipeReader es la mitad de lectura de una tubería y «PipeWriter» es un puntero a PipeWriter. Donde PipeWriter es la mitad de escritura de una tubería.
Valor devuelto: Devuelve un puntero a PipeReader y PipeWriter.
Nota: Está asegurado para llamar a Leer y Escribir simultáneamente o con Cerrar. Sin embargo, las llamadas paralelas a lectura y las llamadas paralelas a escritura también están protegidas. Las llamadas separadas se cerrarán secuencialmente.
Ejemplo 1:
// Golang program to illustrate the usage of // io.Pipe() function // Including main package package main // Importing fmt, io, and bytes import ( "bytes" "fmt" "io" ) // Calling main func main() { // Calling Pipe method pipeReader, pipeWriter := io.Pipe() // Using Fprint in go function to write // data to the file go func() { fmt.Fprint(pipeWriter, "Geeks\n") // Using Close method to close write pipeWriter.Close() }() // Creating a buffer buffer := new(bytes.Buffer) // Calling ReadFrom method and writing // data into buffer buffer.ReadFrom(pipeReader) // Prints the data in buffer fmt.Print(buffer.String()) }
Producción:
Geeks
Ejemplo 2:
// Golang program to illustrate the usage of // io.Pipe() function // Including main package package main // Importing fmt, io, and bytes import ( "bytes" "fmt" "io" ) // Calling main func main() { // Calling Pipe method pipeReader, pipeWriter := io.Pipe() // Using Fprint in go function to write // data to the file go func() { fmt.Fprint(pipeWriter, "GeeksforGeeks\nis\na\nCS-Portal.\n") // Using Close method to close write pipeWriter.Close() }() // Creating a buffer buffer := new(bytes.Buffer) // Calling ReadFrom method and writing // data into buffer buffer.ReadFrom(pipeReader) // Prints the data in buffer fmt.Print(buffer.String()) }
Producción:
GeeksforGeeks is a CS-Portal.
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA