// Arrays in Go // First the size of the array is a part of it // hence when passing also need to show size // Arrays are passed by value. This means that the // array and everything in the array is new pass // Arrays also returned by value package main import "fmt" func printArray(header string, theArra [5]int) { fmt.Printf("%-15v ", header) for _, val := range theArra { fmt.Printf("%3d,", val) } fmt.Printf("\n") } func changeArray(theArra [5]int) [5]int { for idx, val := range theArra { theArra[idx] = val + 100 } printArray("end func", theArra) return theArra } func main() { var mainArra [5]int printArray("main start", mainArra) newArra := changeArray(mainArra) printArray("main end orig", mainArra) printArray("main end new", newArra) }