Explain the use of Go's closures for encapsulating variables in functions?