main.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package main
  2. import "fmt"
  3. func add1(s []int, x int) []int {
  4. s = append(s, x)
  5. fmt.Printf("add1-addrness:%p", &s)
  6. fmt.Println("")
  7. return s
  8. }
  9. func add2(s []int, x int) {
  10. s = append(s, x)
  11. }
  12. func add3(s [10]int, x int) {
  13. s[9] = 10
  14. fmt.Println(s)
  15. fmt.Printf("add1-addrness:%p", &s)
  16. fmt.Println("")
  17. }
  18. func main() {
  19. // sliceList()
  20. // nums := make([]int, 1)
  21. // nums = append(nums, 0)
  22. // fmt.Println(nums, len(nums), cap(nums))
  23. sliceAppend()
  24. }
  25. func sliceList() {
  26. //切片,引用类型
  27. a := [...]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
  28. fmt.Println(a)
  29. s1 := a[5:8] //len=3 cap=5
  30. fmt.Println("s1", s1)
  31. fmt.Printf("s1-addrness:%p", &s1)
  32. fmt.Println("")
  33. add1(s1, 0)
  34. fmt.Println("a", a)
  35. fmt.Println("s1", s1)
  36. add2(s1, 1)
  37. fmt.Println("a", a)
  38. fmt.Println("s1", s1)
  39. //数组,值类型
  40. fmt.Println("值类型-------------------")
  41. b := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
  42. fmt.Printf("b的addrness:%p\n", &b)
  43. add3(b, 0)
  44. fmt.Println(b)
  45. }
  46. func sliceAppend() {
  47. arr := [5]int{1, 2, 3, 4} // [1 2 3 4 0]
  48. fmt.Println(arr)
  49. s2 := arr[2:] // [3 4 0]
  50. printSlice(s2)
  51. s2 = append(s2, 5)
  52. printSlice(s2)
  53. fmt.Println(arr)
  54. }
  55. func printSlice(s []int) {
  56. fmt.Printf("len=%d cap=%d %p %v\n", len(s), cap(s), s, s)
  57. }