Go語言學習筆記十二 Go語言切片

2022-05-02 04:54:05 字數 2161 閱讀 8530

1

package main

23 import "fmt"45

//切片定義 切片是基於陣列型別的一層封裝。它非常靈活,可以自動擴容,切片是乙個引用型別

6func main() else

16//

b[0] = 100 //這種寫法是錯誤的,切片必須先初始化

17var c [5]int= [5]int

18 fmt.println(" c的值為 = ", c)

19 b = c[0:3] //

這種方式是基於已有的陣列,對陣列做乙個切片

20 fmt.println(" b的值為 = ", b)

21//

我們修改切片b裡面的值

22 b[0] = 100

23 b[1] = 199

24 b[2] =88

25 fmt.println(" b的值為 = ", b)

26 fmt.println(" c的值為 = ", c) //

發現c的值也跟著一起改變了,也再一次說明了切片是引用型別

27 d := c[:] //

定義切片d

28 d[1] = 888 //

其實修改的c陣列裡面下標為1的數值

29 fmt.println(" b的值為 = ", b)

30 fmt.println(" c的值為 = ", c) //

發現c的值也跟著一起改變了,也再一次說明了切片是引用型別

31//

切片初始化的第二種方式

32 e := int

33fmt.println(e)

34 }

1

package main

23 import "fmt"45

func main()

2728 fmt.println("\n--------分界線---------")

29//

定義乙個空切片

30var b int

31 fmt.printf("b:%p, len=%d, cap=%d\n",b,len(b),cap(b))

32//

空切片位址是空,不能進行訪問或者賦值 否則會報錯

33if b==nil

4849

50 fmt.println("\n--------分界線---------")

51//

切片後面追加切片

52 c := int

53 d := int

55fmt.println(e)

57fmt.println(e)

58//

可以通過傳切片來修改陣列的值

59//

切片的複製、拷貝

60//

將d切片複製到c //只能copy長度前面的切片 並不會對其進行擴容

61 fmt.println("c的值為",c)

62copy(c, d)

63 fmt.println("c的值為",c)

64copy(c, e)

65 fmt.println("c的值為",c)//

6667}68

//make 和 new 的區別

69//

1

package main23

import (

4 "fmt"

5 "sort"6)

78func main()

11 fmt.println("排序前的值為:", a)

12//

對int進行排序 排序需要傳乙個切片

13sort.ints(a[:])

14 fmt.println("排序後的值為:", a)

1516

//當然也可以對字串進行排序

18 fmt.println("排序前的值為:", strs)

19sort.strings(strs[:])

20 fmt.println("排序後的值為:", strs)

21 }

go語言學習筆記

type info struct func main fmt.println info1 data,json.marshal info1 fmt.println string data 輸出 這裡要特別注意的是 json 冒號後面和雙引號之間千萬不要有空格!被坑慘了 go語言 import的包的前面...

Go語言 學習筆記

import 下劃線 如 import hello imp 的作用 當匯入乙個包時,該包下的檔案裡所有init 函式都會被執行,然而,有些時候我們並不需要把整個包都匯入進來,僅僅是是希望它執行init 函式而已。這個時候就可以使用 import 引用該包。即使用 import 包路徑 只是引用該包,...

Go語言學習筆記

一.go程式開發注意事項 go原始檔以 go 為副檔名。go應用程式的執行入口是main 函式。go語言干戈區分大小寫。go方法由一條條語句構成,每個語句後不需要分號 go語言會在每行後自動加分號 這也體現出golang的簡潔性。go編譯器是一行行進行編譯的,因此我們一行就寫一條語句,不能把多條語句...