¿Cómo reemplazar un elemento específico en una porción de bytes en Golang?

El segmento de lenguaje de Go es más poderoso, flexible y conveniente que una array y es una estructura de datos liviana. El segmento es una secuencia de longitud variable que almacena elementos de un tipo similar, no está permitido almacenar diferentes tipos de elementos en el mismo segmento.
En el segmento de bytes Go, se le permite reemplazar un elemento específico en el segmento dado usando las funciones Reemplazar() . Esta función devuelve una copia del sector que contiene un nuevo sector que se crea reemplazando los elementos del sector anterior. Si el segmento antiguo dado está vacío, entonces coincide al comienzo del segmento y después de cada secuencia UTF-8 está produciendo hasta m+1Reemplazo de m-segmento de runas. Y si el valor de m es menor que cero, entonces esta función puede reemplazar cualquier número de elementos en el segmento dado (sin ningún límite). Se define en el paquete de bytes, por lo que debe importar el paquete de bytes en su programa para acceder a la función Repetir.

Sintaxis:

func Replace(ori_slice, old_slice, new_slice []byte, m int) []byte

Aquí, ori_slice es el segmento original de bytes, old_slice es el segmento que desea reemplazar, new_slice es el nuevo segmento que reemplaza al old_slice y m es la cantidad de veces que se reemplazó el old_slice .

Ejemplo 1:

// Go program to illustrate how to replace
// the element of the slice of bytes
package main
  
import (
    "bytes"
    "fmt"
)
  
// Main function
func main() {
  
    // Creating and initializing
    // the slice of bytes
    // Using shorthand declaration
    slice_1 := []byte{'G', 'E', 'E', 'K', 'S'}
    slice_2 := []byte{'A', 'P', 'P', 'L', 'E'}
  
    // Displaying slices
    fmt.Println("Original slice:")
    fmt.Printf("Slice 1: %s", slice_1)
    fmt.Printf("\nSlice 2: %s", slice_2)
  
    // Replacing the element
    // of the given slices
    // Using Replace function
    res1 := bytes.Replace(slice_1, []byte("E"), []byte("e"), 2)
    res2 := bytes.Replace(slice_2, []byte("P"), []byte("p"), 1)
  
    // Display the results
    fmt.Printf("\n\nNew Slice:")
    fmt.Printf("\nSlice 1: %s", res1)
    fmt.Printf("\nSlice 2: %s", res2)
}

Producción:

Original slice:
Slice 1: GEEKS
Slice 2: APPLE

New Slice:
Slice 1: GeeKS
Slice 2: ApPLE

Ejemplo 2:

// Go program to illustrate how to replace
// the specified element from the given
// slice of bytes
package main
  
import (
    "bytes"
    "fmt"
)
  
// Main function
func main() {
  
    // Replacing the element
    // of the given slices
    // Using Replace function
    res1 := bytes.Replace([]byte("GeeksforGeeks, Geeks, Geeks"), []byte("eks"), []byte("EKS"), 3)
  
    res2 := bytes.Replace([]byte("Hello! i am Puppy, Puppy, Puppy"), []byte("upp"), []byte("ISL"), 2)
  
    res3 := bytes.Replace([]byte("GFG, GFG, GFG"), []byte("GFG"), []byte("geeks"), -1)
  
    res4 := bytes.Replace([]byte("I like icecream"), []byte("like"), []byte("love"), 0)
  
    // Display the results
    fmt.Printf("Result 1: %s", res1)
    fmt.Printf("\nResult 2: %s", res2)
    fmt.Printf("\nResult 3: %s", res3)
    fmt.Printf("\nResult 4: %s", res4)
}

Producción:

Result 1: GeEKSforGeEKS, GeEKS, Geeks
Result 2:Hello! i am PISLy, PISLy, Puppy
Result 3:geeks, geeks, geeks
Result 4:I like icecream

Publicación traducida automáticamente

Artículo escrito por ankita_saini 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 *