shomali11/go-interview

Why we should set structure variable to nil after use?

horis233 opened this issue · 1 comments

Firstly, really appreciate your sharing the collection of Golang technical interview questions, which really help me to learn Golang as a beginner.

I have a question when I read your doubly lined list Implement. I found you will set the structure variable to nil after using it.

For example, in the following function:
https://github.com/shomali11/go-interview/blob/master/datastructures/linkedlists/doublylinkedlists/doubly_linked_lists.go#L94

// GetIndexOf returns the index of the first occurence
func (s *DoublyLinkedList) GetIndexOf(value interface{}) int {
	index := 0
	current := s.head
	for current != nil {
		if value == current.Value {
			return index
		}
		current = current.Next
		index++
	}
	current = nil  <-- This line
	return -1
}

Will the function cause a leak if it isn't set to nil?
It is probably a dumb question. Could you shed some light?
Thanks in advance!

That is probably unnecessary since the for loop will exist when the current is nil.
Good catch!