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 %vn", *number)
fmt.Println("nil pointer", *years)
fmt.Println("read pointer paramter with returning", pointerStructParameterWithRetruning(person))
}