From 43120d65f9a99132ddcb24b85a4f0c6e941163b5 Mon Sep 17 00:00:00 2001 From: Inanc Gumus Date: Tue, 30 Apr 2019 15:53:23 +0300 Subject: [PATCH] update: pointers log parser --- 26-pointers/02-pointers-basic-examples/main.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/26-pointers/02-pointers-basic-examples/main.go b/26-pointers/02-pointers-basic-examples/main.go index 842c7e9..3fea831 100644 --- a/26-pointers/02-pointers-basic-examples/main.go +++ b/26-pointers/02-pointers-basic-examples/main.go @@ -43,6 +43,7 @@ func main() { fmt.Println("\n••••• CHANGE IN: passPtrVal") passPtrVal(&counter) // same as passPtrVal(&counter) (no need to return) + passPtrVal(&counter) // same as passPtrVal(&counter) (no need to return) fmt.Printf("counter : %-16d address: %-16p\n", counter, &counter) } @@ -53,6 +54,9 @@ func passPtrVal(pn *int) { // pointers can breach function isolation borders *pn++ // counter changes because `pn` points to `counter` — (*pn)++ fmt.Printf("pn : %-16p address: %-16p *pn: %d\n", pn, &pn, *pn) + + // setting it to nil doesn't effect the caller (the main function) + pn = nil } // n is a int variable (copy of counter)