para ley transversal de rango
Cadena, matriz, corte, subíndice de retorno, valor
mapa devuelve clave, val
channel solo devuelve el valor en el canal
Ejemplos
func ForArrayTest () { fmt .Println ( " for range: str " ) str: = " hello " para key, val: = range str { fmt .Println (key, val) } fmt .Println ( " for range: array " ) matriz: = [ 3 ] int { 1 , 2 , 3 } para clave, val: = gama matriz { fmt .Println (clave, val) } fmt .Println (" for range: slice " ) slice: = [] int { 1 , 2 , 3 } for key, val: = range slice { fmt .Println (key, val) } fmt .Println ( " for range: map " ) provinceCapital : = make (mapa [ cadena ] cadena ) provinceCapital [ " 山东" ] = " 济南" provinceCapital [ " 河北"] = " 石家庄" provinceCapital [ " 广东" ] = " 广州" para key, val: = range provinceCapital { fmt .Println (key, val) } fmt .Println ( " for range: chan " ) cha1: = make (chan int , 3 ) cha1 <- 1 cha1 <- 2 cha1 <- 3 // cha1 <- 4 para val: =rango cha1 { fmt .Println (val) } }
Salida
para rango: str 0 104 1 101 2 108 3 108 4 111 para rango: matriz 0 1 1 2 2 3 para rango: corte 0 1 1 2 2 3 para rango: mapa Jinan , Shandong , Shijiazhuang, Hebei, Guangzhou, Guangzhou para rango: chan 1 2 3 error fatal: todas las gorutinas están dormidas - ¡Desbloqueo!