¿Existe en Go un bucle foreach para iterar sobre elementos de un slice?
¡Hola a todos! Acabo de empezar a aprender Go después de Python y JavaScript, y me encontré con una dificultad inesperada. En Python estoy acostumbrado a escribir `for item in my_list:`, en JS — `arr.forEach(item => ...)`. Y en Go solo veo el clásico `for i := 0; i < len(slice); i++ {}` — ¿es esto normal?
Tengo un slice simple de strings:
```go
names := []string{"Alice", "Bob", "Charlie"}
```
Quiero imprimir cada nombre en una línea separada. En Python escribiría:
```python
for name in names:
print(name)
```
Y en Go tengo que escribir así:
```go
for i := 0; i < len(names); i++ {
fmt.Println(names[i])
}
```
Esto funciona, pero se ve engorroso. Siento que me estoy perdiendo alguna sintaxis elegante. Intenté buscar "foreach in Go", pero las respuestas me confunden — algunos dicen que no hay foreach, otros muestran una construcción con `range`.
Por favor, díganme:
1. ¿Existe en Go un análogo de foreach de otros lenguajes?
2. Si es así, ¿cómo usarlo correctamente?
3. ¿Hay alguna diferencia en el rend