Назад к вопросам
JuniorТеорияЧасто
Что произойдёт при сборке и запуске программы?
package main
import "fmt"
func main() {
var p *int
fmt.Println(*p)
}Паника: runtime error: invalid memory address or nil pointer dereference
- Ждать
0, как при чтении отсутствующего ключаmap:*pчитаетintпо адресу изp, а заnil-указателем нет никакогоint, поэтому программа паникует. - Ждать
<nil>: так напечатал быfmt.Println(p);*pпросит значение за указателем, а не сам указатель.
- Как изменить программу, чтобы она напечатала
0без паники? - Как функции защититься от переданного ей
nil-указателя?