Pointer
& operator generates pointer to operand. * operator derefences pointer’s value. Unlike C there is no pointer arithematic in go
package main
import "fmt"
func main() {
a := 1
ptr := &a //Points to a
fmt.Println(*ptr) //1
//ptr = ptr + 1; //not allowed
}
# /usr/local/go/bin/go build pointer.go
# ./pointer
1
Single Linked list
type ListNode struct {
Val int
Next *ListNode
}
func test(node *ListNode) bool {
if node == nil { // nil, Not NULL
return false
}
var val int = node.Val
var next ListNode* = node.Next //Value accessed from pointer using .
}