// +build OMIT// Copyright 2013 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.packagemainimport("fmt")// Extend extends the slice by adding the element to the end.funcExtend(slice[]int,elementint)[]int{n:=len(slice)ifn==cap(slice){// Slice is full; must grow.// We double its size and add 1, so if the size is zero we still grow.newSlice:=make([]int,len(slice),2*len(slice)+1)copy(newSlice,slice)slice=newSlice}slice=slice[0:n+1]slice[n]=elementreturnslice}funcmain(){// START OMITslice:=make([]int,0,5)fori:=0;i<10;i++{slice=Extend(slice,i)fmt.Printf("len=%d cap=%d slice=%v\n",len(slice),cap(slice),slice)fmt.Println("address of 0th element:",&slice[0])}// END OMIT}