Función reflect.AppendSlice() 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.AppendSlice() en Golang se usa para agregar un segmento t a un segmento s. Para acceder a esta función, es necesario importar el paquete reflect en el programa.

Sintaxis:

func AppendSlice(s, t Value) Value

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

  • s: Este parámetro es el segmento.
  • t: este parámetro también es otro corte.

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.AppendSlice() Function
  
package main
  
import (
    "fmt"
    "reflect"
)
  
// Main function
func main() {
  
    val1:= reflect.ValueOf([]int{1, 2, 3, 4, 5})
      
    val2:= reflect.ValueOf([]int{11, 12, 13, 14, 15})
      
    fmt.Println("First Slice :", val1)
    fmt.Println("Second Slice :", val1)
      
    val1 = reflect.AppendSlice(val1, val2)
  
     fmt.Println("Resultant Slice :", val1)
      
  
}

Producción:

First Slice : [1 2 3 4 5]
Second Slice : [1 2 3 4 5]
Resultant Slice : [1 2 3 4 5 11 12 13 14 15]

Ejemplo 2:

// Golang program to illustrate
// reflect.AppendSlice() Function
  
package main
  
import (
    "fmt"
    "reflect"
)
  
// Main function
func main() {
  
    var str []string
     var v reflect.Value = reflect.ValueOf(&str)
  
     v = v.Elem()
  
  
     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"))
      
    x:= []string{"m", "p", "s"}
      
    fmt.Println("First Slice :", v)
    fmt.Println("Second Slice :", x)
    v = reflect.AppendSlice(v, reflect.ValueOf(x))
  
     fmt.Println("Resultant Slice :", v)
  
}

Producción:

First Slice : [a b c j, k, l]
Second Slice : [m p s]
Resultant Slice : [a b c j, k, l m p s]

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 *