golang when to use pointers code example

Example: golang pointer

package main

import "fmt"

type Person struct {
	Firstname string
	Lastname  string
}

func pointerParameter(fullname *string) {
	*fullname = "john doe"
	fmt.Println("passing data with pointer", *fullname)
}

func pointerStructParameter(person *Person) {
	fmt.Println(*person)
}

func pointerStructParameterWithRetruning(person *Person) (pointer interface{}) {
	pointer = *person
	return pointer
}

func main() {
	var fullname string

	realNumber := 5
	pointerNumber := &realNumber
	number := pointerNumber
	person := &Person{
		Firstname: "john doe",
		Lastname:  "margareth",
	}

	var yearsPointer *int
	years := &yearsPointer

	pointerParameter(&fullname)
	pointerStructParameter(person)

	fmt.Println("real number", realNumber)
	fmt.Println("pointer number", pointerNumber)
	fmt.Printf("real number from pointer %v\n", *number)
	fmt.Println("nil pointer", *years)
	fmt.Println("read pointer paramter with returning", pointerStructParameterWithRetruning(person))

}

Tags:

Go Example