func main(){
var
ss []string;
fmt.Printf(
"[ local print ]\t:\t length:%v\taddr:%p\tisnil:%v\n"
,len(ss),ss, ss==nil)
print(
"func print"
,ss)
for
i:=0;i<10;i++{
ss=append(ss,fmt.Sprintf(
"s%d"
,i));
}
fmt.Printf(
"[ local print ]\t:\tlength:%v\taddr:%p\tisnil:%v\n"
,len(ss),ss, ss==nil)
print(
"after append"
,ss)
index:=5;
ss=append(ss[:index],ss[index+1:]...)
print(
"after delete"
,ss)
rear:=append([]string{},ss[index:]...)
ss=append(ss[0:index],
"inserted"
)
ss=append(ss,rear...)
print(
"after insert"
,ss)
}
func print(msg string,ss []string){
fmt.Printf(
"[ %20s ]\t:\tlength:%v\taddr:%p\tisnil:%v\tcontent:%v"
,msg,len(ss),ss, ss==nil,ss)
fmt.Println()
}
------
Running...
[ local print ] : length:0 addr:0x0 isnil:
true
[ func print ] : length:0 addr:0x0 isnil:
true
content:[]
[ local print ] : length:10 addr:0xc208056000 isnil:
false
[ after append ] : length:10 addr:0xc208056000 isnil:
false
content:[s0 s1 s2 s3 s4 s5 s6 s7 s8 s9]
[ after
delete
] : length:9 addr:0xc208056000 isnil:
false
content:[s0 s1 s2 s3 s4 s6 s7 s8 s9]
[ after insert ] : length:10 addr:0xc208056000 isnil:
false
content:[s0 s1 s2 s3 s4 inserted s6 s7 s8 s9]
Success: process exited
with
code 0.