package main
import "fmt"
func main() {
var n *int
fmt.Println(*n)
}
package main
import "fmt"
type Point struct {
X, Y float64
}
func main() {
var p *Point
fmt.Println(p.X) // panic: runtime error: invalid memory address or nil pointer dereference
}
package main
import (
"encoding/json"
"fmt"
)
type MyObject struct {
ID int `json:"id"`
Name string `json:"name"`
DisplayName *string `json:"displayName"`
}
func main() {
var myObject1, myObject2 MyObject
_ = json.Unmarshal([]byte(`{"id":1,"name":"hello","displayName":"hello everyone"}`), &myObject1)
_ = json.Unmarshal([]byte(`{"id":2,"name":"world","displayName":nil}`), &myObject2)
fmt.Printf("%+v\n", myObject1) // {ID:1 Name:hello DisplayName:0xc000010350}
fmt.Printf("%+v\n", myObject1.DisplayName) // 0xc000010350
fmt.Printf("%+v\n", *myObject1.DisplayName) // hello everyone
fmt.Printf("%+v\n", myObject2) // {ID:0 Name: DisplayName:<nil>}
fmt.Printf("%+v\n", myObject2.DisplayName) // <nil>
fmt.Printf("%+v\n", *myObject2.DisplayName) // ★ panic: runtime error: invalid memory address or nil pointer dereference
}