Назад к вопросам
JuniorТеорияЧасто
Что произойдёт при сборке и запуске программы?
package main
import "fmt"
func main() {
var m map[string]int
fmt.Println(len(m))
m["a"] = 1
fmt.Println(m)
}Выведет 0, а затем паника
- Ждать
map[a:1], будто первая запись создастmap: объявленнаяmapравнаnil, и запись в неё вызывает паникуassignment to entry in nil map. - Ждать паники на
len(m): чтение из nil-map безопасно, она ведёт себя как пустая, поэтомуlen(m)равно0, а паника будет только при записи.
- Как изменить объявление
m, чтобы запись сработала? - Что возвращает
m["x"], еслиm—nil-map?