//slice版package main
import("fmt""reflect")funcmain(){string:=[]int{1,2,3,4,5,6,7}
fmt.Println(reflect.TypeOf(string))//检查变量类型reverse(string)
fmt.Println(string)}funcreverse(s []int){for i, j :=0,len(s)-1; i < j; i, j = i+1, j-1{
s[i], s[j]= s[j], s[i]}}
//数组指针版package main
import("fmt""reflect")funcmain(){string:=[...]int{1,2,3,4,5,6,7}
fmt.Println(reflect.TypeOf(string))//检查变量类型reverse(&string)
fmt.Println(string)}funcreverse(s *[7]int){for i, j :=0,len(*s)-1; i < j; i, j = i+1, j-1{(*s)[i],(*s)[j]=(*s)[j],(*s)[i]}}
4.4编写一个rotate函数,通过一次循环完成旋转
//三次reversepackage main
import("fmt""reflect")funcmain(){string:=[]int{1,2,3,4,5,6,7}
fmt.Println(reflect.TypeOf(string[:]))//检查变量类型
fmt.Println(string)reverse(string[:2])
fmt.Println(string)reverse(string[2:])
fmt.Println(string)reverse(string)
fmt.Println(string)}funcreverse(s []int){for i, j :=0,len(s)-1; i < j; i, j = i+1, j-1{
s[i], s[j]= s[j], s[i]}}
//一次循环版package main
import("fmt""reflect")funcmain(){string:=[]int{1,2,3,4,5,6,7}
fmt.Println(reflect.TypeOf(string[:]))//检查变量类型
fmt.Println(string)
fmt.Println(rotate(string,2))}funcrotate(s []int,n int)[]int{for i :=0;i < n;i++{
s =append(s,s[0])
s = s[1:len(s)]//fmt.Println(s)}return s
}