Спецификация языка программирования Go
Индексные выражения
Первичное выражение формы
a[x]
обозначает элемент массива, указатель на массив, фрагмент или строку a
, проиндексированный x
. Значение x
называется индексом,
индекс x
находится в диапазоне, если 0 <= x < len(a)
, в противном случае он выходит за пределы диапазона
[]string{}
make([]string, 0)
и str2[0]
вне диапазона.
package main
import (
"fmt"
)
func main() {
str1 := make([]string, 10)
fmt.Println(len(str1), cap(str1), str1)
str2 := []string{}
fmt.Println(len(str2), cap(str2), str2)
fmt.Println(str1[0]) // *No error*
fmt.Println(str2[0]) // *error*
}
Детская площадка: https://play.golang.org/p/p31fUyb4pqW
Выход:
10 10 [ ]
0 0 []
panic: runtime error: index out of range [0] with length 0