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