40 lines
		
	
	
		
			880 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			880 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// For more tutorials: https://blog.learngoprogramming.com
 | 
						|
//
 | 
						|
// Copyright © 2018 Inanc Gumus
 | 
						|
// Learn Go Programming Course
 | 
						|
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
 | 
						|
//
 | 
						|
 | 
						|
package main
 | 
						|
 | 
						|
import "fmt"
 | 
						|
 | 
						|
// I didn't talk about this in a lecture
 | 
						|
// As a side-note, I wanted to put it here
 | 
						|
// Please review it.
 | 
						|
 | 
						|
var declareMeAgain = 10
 | 
						|
 | 
						|
func nested() { // block scope starts
 | 
						|
 | 
						|
	// declares the same variable
 | 
						|
	// they both can exist together
 | 
						|
	// this one only belongs to this scope
 | 
						|
	// package's variable is still intact
 | 
						|
	var declareMeAgain = 5
 | 
						|
	fmt.Println("inside nope:", declareMeAgain)
 | 
						|
 | 
						|
} // block scope ends
 | 
						|
 | 
						|
func main() { // block scope starts
 | 
						|
 | 
						|
	fmt.Println("inside main:", declareMeAgain)
 | 
						|
 | 
						|
	nested()
 | 
						|
 | 
						|
	// package-level declareMeAgain isn't effected
 | 
						|
	// from the change inside the nested func
 | 
						|
	fmt.Println("inside main:", declareMeAgain)
 | 
						|
 | 
						|
} // block scope ends
 |