为什么slice返回的结果是这样的?

package main

import "fmt"

func SliceRise(s []int){
	s=append(s,0)
	for i:=range s{
		s[i]++
	}
}

func main(){
	s1:=[]int{1,2}
	s2:=s1
	s2=append(s2,3)
	fmt.Println(s1,s2)
	SliceRise(s1)
	SliceRise(s2)
	fmt.Println(s1,s2)
}

如果你想让打出来的s1的结果和s2一样,这样就可以:
s2:=&s1
*s2=append(*s2,3)

第二个疑点,for i:=range s遍历的是当前切片,按这个写法会对每个元素做+1操作,因此就变成了2,3,4
明白了吗,如果还有其它问题欢迎随时提问,如果有帮助欢迎采纳哦