面试1--切片

package main

import "fmt"

func main() {
	a := []int{1, 2, 3}
	slice(a)
	fmt.Println("1", a)		//10 2 3
	slicePtr1(&a)
	fmt.Println("2", a)		//20 20 3 20
	slicePtr2(&a)
	fmt.Println("3", a)		//30 30 3 20
	slicePtr3(&a)
}

func slice(s []int) {
	s[0] = 10
	s = append(s, 10)
	s[1] = 10
	fmt.Println(s)	//10 10 3 10
}

func slicePtr1(s *[]int) {
	(*s)[0] = 20
	*s = append(*s, 20)
	(*s)[1] = 20
}

func slicePtr2(s *[]int) {
	b := *s
	b[0] = 30
	b = append(b, 30)
	b[1] = 30
}

func slicePtr3(s *[]int) {
	b := *s
	b = append(b, 40)
	fmt.Println("4", b)		//30 30 3 20 40
	*s = append(*s, 50)
	fmt.Println("5", b)		//30 30 3 20 50
}

  

posted @ 2022-05-17 23:04  wustjq  阅读(19)  评论(0)    收藏  举报