36 lines
		
	
	
		
			781 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			781 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"
 | 
						|
	"math/rand"
 | 
						|
	"time"
 | 
						|
)
 | 
						|
 | 
						|
func main() {
 | 
						|
	rand.Seed(time.Now().UnixNano())
 | 
						|
	nums := rand.Perm(100)
 | 
						|
 | 
						|
	// ----------------------------------------
 | 
						|
	// breaks the connection:
 | 
						|
	// mine and nums now have different backing arrays
 | 
						|
 | 
						|
	// verbose solution:
 | 
						|
	// var mine []int
 | 
						|
	// mine = append(mine, nums[:3]...)
 | 
						|
 | 
						|
	// better solution (almost the same thing):
 | 
						|
	mine := append([]int(nil), nums[:3]...)
 | 
						|
	// ----------------------------------------
 | 
						|
 | 
						|
	mine[0], mine[1], mine[2] = -50, -100, -150
 | 
						|
	fmt.Println("Mine         :", mine)
 | 
						|
	fmt.Println("Original nums:", nums[:3])
 | 
						|
}
 |