Función io.SectionReader.Seek() 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 SectionReader.Seek() en el lenguaje Go se usa para encontrar un nuevo desplazamiento con la ayuda del desplazamiento indicado y de dónde. Además, esta función se define en el paquete io. Aquí, debe importar el paquete «io» para usar estas funciones.

Sintaxis:

func (s *SectionReader) Seek(offset int64, whence int) (int64, error)

Aquí, «s» es un puntero a SectionReader que devuelve el método NewSectionReader , «offset» es de tipo int64 y «wherece» es de tipo int.

Valor devuelto: Devuelve un nuevo desplazamiento con la ayuda del desplazamiento dado más de dónde y también devuelve un error, si lo hubiera.

Nota: Hay tres valores constantes de Seek wherece , que son los siguientes:

  • SeekStart = 0, busca relativo al inicio del archivo indicado.
  • SeekCurrent = 1, busca en relación con el último desplazamiento del archivo indicado.
  • SeekEnd = 2, busca relativo al final del archivo indicado.

Ejemplo 1:

// Golang program to illustrate the usage of
// io.SectionReader.Seek() function
  
// Including main package
package main
  
// Importing fmt, io, and strings
import (
    "fmt"
    "io"
    "strings"
)
  
// Calling main
func main() {
  
    // Defining reader using NewReader method
    reader := strings.NewReader("Geeks")
  
    // Calling NewSectionReader method with its parameters
    r := io.NewSectionReader(reader, 1, 4)
  
    // Calling Seek method with its parameters
    Newoffset, err := r.Seek(6, 1)
  
    // If error is not nil then panics
    if err != nil {
        panic(err)
    }
  
    // Prints output
    fmt.Printf("The new offset is: %v\n", Newoffset)
}

Producción:

The new offset is: 6

En el ejemplo anterior, el valor de Seek de donde es 1, lo que significa que es «SeekCurrent», por lo que busca en relación con el desplazamiento actual.

Ejemplo 2:

// Golang program to illustrate the usage of
// io.SectionReader.Seek() function
  
// Including main package
package main
  
// Importing fmt, io, and strings
import (
    "fmt"
    "io"
    "strings"
)
  
// Calling main
func main() {
  
    // Defining reader using NewReader method
    reader := strings.NewReader("Geeks")
  
    // Calling NewSectionReader method with its parameters
    r := io.NewSectionReader(reader, 1, 4)
  
    // Calling Seek method with its parameters
    Newoffset, err := r.Seek(6, io.SeekEnd)
  
    // If error is not nil then panics
    if err != nil {
        panic(err)
    }
  
    // Prints output
    fmt.Printf("The new offset is: %v\n", Newoffset)
}

Producción:

The new offset is: 10

Aquí, el valor de Seek de donde es «SeekEnd», lo que significa que busca en relación con el final.

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 *