Palabra clave de rango en Golang

En Golang Range, la palabra clave se usa en diferentes tipos de estructuras de datos para iterar sobre los elementos. La palabra clave range se usa principalmente en bucles for para iterar sobre todos los elementos de un mapa , segmento , canal o array . Cuando itera sobre los elementos de una array y los divide, devuelve el índice del elemento en forma de número entero. Y cuando itera sobre los elementos de un mapa, devuelve la clave del par clave-valor subsiguiente. Además, el rango puede devolver uno o dos valores. Veamos qué rango devuelve al iterar sobre diferentes tipos de colecciones en Golang.

  • Array o segmento: el primer valor devuelto en caso de array o segmento es el índice y el segundo valor es el elemento .
  • String: el primer valor devuelto en string es índice y el segundo valor es runa int .
  • Mapa: el primer valor devuelto en el mapa es clave y el segundo valor es el valor del par clave-valor en el mapa.
  • Canal: el primer valor devuelto en canal es elemento y el segundo valor es ninguno .

Ahora, veamos algunos ejemplos para ilustrar el uso de la palabra clave range en Golang.

Ejemplo 1:

// Golang Program to illustrate the usage
// of range keyword over items of an
// array in Golang
 
package main
 
import "fmt"
 
// main function
func main() {
 
    // Array of odd numbers
    odd := [7]int{1, 3, 5, 7, 9, 11, 13}
 
    // using range keyword with for loop to
    // iterate over the array elements
    for i, item := range odd {
 
        // Prints index and the elements
        fmt.Printf("odd[%d] = %d \n", i, item)
    }
}

Producción:

odd[0] = 1
odd[1] = 3
odd[2] = 5
odd[3] = 7
odd[4] = 9
odd[5] = 11
odd[6] = 13

Aquí se imprimen todos los elementos con su respectivo índice.

Ejemplo 2:

// Golang Program to illustrate the usage of
// range keyword over string in Golang
 
package main
 
import "fmt"
 
// Constructing main function
func main() {
 
    // taking a string
    var string = "GeeksforGeeks"
 
    // using range keyword with for loop to
    // iterate over the string
    for i, item := range string {
 
        // Prints index of all the
        // characters in the string
        fmt.Printf("string[%d] = %d \n", i, item)
    }
}

Producción:

string[0] = 71 
string[1] = 101 
string[2] = 101 
string[3] = 107 
string[4] = 115 
string[5] = 102 
string[6] = 111 
string[7] = 114 
string[8] = 71 
string[9] = 101 
string[10] = 101 
string[11] = 107 
string[12] = 115

Aquí, los elementos impresos son la runa , que es el valor int32 ASCII de los caracteres indicados que forman la string.

Ejemplo 3:

// Golang Program to illustrate the usage of
// range keyword over maps in Golang
 
package main
 
import "fmt"
 
// main function
func main() {
 
    // Creating map of student ranks
    student_rank_map := map[string]int{"Nidhi": 3,
                           "Nisha": 2, "Rohit": 1}
 
    // Printing map using keys only
    for student := range student_rank_map {
        fmt.Println("Rank of", student, "is: ",
                     student_rank_map[student])
    }
 
    // Printing maps using key-value pair
    for student, rank := range student_rank_map {
        fmt.Println("Rank of", student, "is: ", rank)
    }
}

Producción:

Rank of Nidhi is:  3
Rank of Nisha is:  2
Rank of Rohit is:  1
Rank of Nidhi is:  3
Rank of Nisha is:  2
Rank of Rohit is:  1

Entonces, aquí, al principio, la salida se imprime solo usando la clave y luego nuevamente la salida se imprime usando tanto la clave como el valor.

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 *