Función reflect.Append() en Golang con ejemplos

El lenguaje Go proporciona una implementación de soporte incorporada de la reflexión en tiempo de ejecución y permite que un programa manipule objetos con tipos arbitrarios con la ayuda del paquete de reflexión. La función reflect.Append() en Golang se usa para agregar los valores x a un segmento s. Para acceder a esta función, es necesario importar el paquete reflect en el programa.

Sintaxis:

func Append(s Value, x ...Value) Value

Parámetros: Esta función toma los siguientes parámetros:

  • s: este parámetro es el segmento donde se agregarán los valores.
  • x: estos parámetros son valores que se agregarán.

Valor de retorno: esta función devuelve el segmento resultante.

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

Ejemplo 1:

// Golang program to illustrate
// reflect.Append() Function
  
package main
  
import (
    "fmt"
    "reflect"
)
  
// Main function
func main() {
  
    a := []int{2, 5}
      
    var b reflect.Value = reflect.ValueOf(&a)
  
    b = b.Elem()
      
    fmt.Println("Slice :", a)
      
    // use of Append method
  
    b = reflect.Append(b, reflect.ValueOf(80))
    fmt.Println("Slice after appending data:", b)
  
}

Producción:

Slice : [2 5]
Slice after appending data: [2 5 80]

Ejemplo 2:

// Golang program to illustrate
// reflect.Append() Function
  
package main
  
import (
    "fmt"
    "reflect"
)
  
// Main function
func main() {
  
    var str []string
     var v reflect.Value = reflect.ValueOf(&str)
  
     v = v.Elem()
  
     // using the function
     v = reflect.Append(v, reflect.ValueOf("a"))
     v = reflect.Append(v, reflect.ValueOf("b"))
     v = reflect.Append(v, reflect.ValueOf("c"), reflect.ValueOf("j, k, l"))
  
     fmt.Println("Our value is a type of :", v.Kind())
  
     vSlice := v.Slice(0, v.Len())
     vSliceElems := vSlice.Interface()
  
     fmt.Println("With the elements of : ", vSliceElems)
  
}

Producción:

Our value is a type of : slice
With the elements of :  [a b c j, k, l]

Publicación traducida automáticamente

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