欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

GO語言基本類型String和Slice,Map操作詳解

 更新時間:2022年08月01日 12:00:17   作者:echizen  
這篇文章主要為大家介紹了GO語言基本類型String和Slice,Map操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

本文大綱

本文繼續(xù)學(xué)習(xí)GO語言基礎(chǔ)知識點。

1、字符串String

String是Go語言的基本類型,在初始化后不能修改,Go字符串是一串固定長度的字符連接起來的字符序列,當(dāng)然它也是一個字節(jié)的切片(Slice)。

import ("fmt")
func main() {  
    name := "Hello World" //聲明一個值為 Hello World的字符串變量 name
    fmt.Println(name)
}

String常用操作:獲取長度和遍歷

1、獲取字符串長度:len()函數(shù)

str1 := "hello world"
fmt.Println(len(str1)) // 11

2、字符串遍歷方式1:

str := "hello"
for i := 0; i < len(str); i++ {
	fmt.Println(i,str[i])
}

3、字符串遍歷方式2:

str := "hello"
for i,ch := range str {
	fmt.Println(i,ch)
}

4、使用函數(shù)string()將其他類型轉(zhuǎn)換為字符串

num := 12
fmt.Printf("%T \n", string(num)      // "12"  string

5、字符串拼接

str1 := "hello "
str2 := " world"
//創(chuàng)建字節(jié)緩沖
var stringBuilder strings.Builder
//把字符串寫入緩沖
stringBuilder.WriteString(str1)
stringBuilder.WriteString(str2)
//將緩沖以字符串形式輸出
fmt.Println(stringBuilder.String())

字符串的strings包

//查找s在字符串str中的索引
Index(str, s string) int 
//判斷str是否包含s
Contains(str, s string) bool
//通過字符串str連接切片 s
Join(s []string, str string) string
//替換字符串str中old字符串為new字符串,n表示替換的次數(shù),小于0全部替換
Replace(str,old,new string,n int) string

字符串的strconv包:

用于與基本類型之間的轉(zhuǎn)換,常用函數(shù)有Append、Format、Parse

  • Append 系列函數(shù)將整數(shù)等轉(zhuǎn)換為字符串后,添加到現(xiàn)有的字節(jié)數(shù)組中
  • Format 系列函數(shù)把其他類型的轉(zhuǎn)換為字符串
  • Parse 系列函數(shù)把字符串轉(zhuǎn)換為其他類型

2、切片Slice

切片(slice)的作用是解決GO數(shù)組長度不能擴展的問題。是一種方便、靈活且強大的包裝器。它本身沒有任何數(shù)據(jù),只是對現(xiàn)有數(shù)組的引用。

切片定義

var identifier []type

切片不需要說明長度, 或使用make()函數(shù)來創(chuàng)建切片:

var slice1 []type = make([]type, len)
也可以簡寫為
slice1 := make([]type, len)

示例

func main() {
   /* 創(chuàng)建切片 */
   numbers := []int{0,1,2,3,4,5,6,7,8}   
   printSlice(numbers)
   /* 打印原始切片 */
   fmt.Println("numbers ==", numbers)
   /* 打印子切片從索引1(包含) 到索引4(不包含)*/
   fmt.Println("numbers[1:4] ==", numbers[1:4])
   /* 默認下限為 0*/
   fmt.Println("numbers[:3] ==", numbers[:3])
}
func printSlice(x []int){
   fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)
}
打印結(jié)果:
len=9 cap=9 slice=[0 1 2 3 4 5 6 7 8]
numbers == [0 1 2 3 4 5 6 7 8]
numbers[1:4] == [1 2 3]
numbers[:3] == [0 1 2]

3、集合Map

Map是Go語言的內(nèi)置類型,將一個值與一個鍵關(guān)聯(lián)起來,是一種無序的鍵值對的集合,可以使用相應(yīng)的鍵檢索值(類比Java中的Map來記)。

// 聲明一個map類型,[]內(nèi)的類型指任意可以進行比較的類型 int指值類型
m := map[string]int{"a":1,"b":2}
fmt.Print(m["a"])

示例:

func main() {
   var countryCapitalMap map[string]string
   /* 創(chuàng)建集合 */
   countryCapitalMap = make(map[string]string)
   /* map 插入 key-value 對,各個國家對應(yīng)的首都 */
   countryCapitalMap["France"] = "Paris"
   countryCapitalMap["Italy"] = "Rome"
   countryCapitalMap["Japan"] = "Tokyo"
   countryCapitalMap["India"] = "New Delhi"
   /* 使用 key 輸出 map 值 */
   for country := range countryCapitalMap {
      fmt.Println("Capital of",country,"is",countryCapitalMap[country])
   }

運行結(jié)果:

   Capital of France is Paris
   Capital of Italy is Rome
   Capital of Japan is Tokyo
   Capital of India is New Delhi 

以上就是GO語言基本類型String和Slice,Map操作詳解的詳細內(nèi)容,更多關(guān)于GO基本類型String Slice Map的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Golang如何實現(xiàn)節(jié)假日不打擾用戶

    詳解Golang如何實現(xiàn)節(jié)假日不打擾用戶

    這篇文章主要為大家介紹了Golang如何實現(xiàn)節(jié)假日不打擾用戶過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • go 協(xié)程返回值處理操作

    go 協(xié)程返回值處理操作

    這篇文章主要介紹了go 協(xié)程返回值處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Go實現(xiàn)Redis連接池方法

    Go實現(xiàn)Redis連接池方法

    為了更深入了解golang連接池的實現(xiàn),自已又重寫了一遍連接池。文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Go編程中常見錯誤和不良實踐解析

    Go編程中常見錯誤和不良實踐解析

    這篇文章主要為大家介紹了Go編程中常見錯誤和不良實踐解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • 詳解Go語言中切片的長度與容量的區(qū)別

    詳解Go語言中切片的長度與容量的區(qū)別

    切片可以看成是數(shù)組的引用,切片的長度是它所包含的元素個數(shù)。切片的容量是從它的第一個元素到其底層數(shù)組元素末尾的個數(shù)。本文將通過示例詳細講講Go語言中切片的長度與容量的區(qū)別,需要的可以參考一下
    2022-11-11
  • 一文帶你了解Go語言中鎖的實現(xiàn)

    一文帶你了解Go語言中鎖的實現(xiàn)

    這篇文章主要帶大家一起學(xué)習(xí)一下go鎖和讀寫鎖的總結(jié)文檔,?主要從"參考"部分的文章結(jié)合源碼學(xué)習(xí),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03
  • Golang中errgroup的常見誤用詳解

    Golang中errgroup的常見誤用詳解

    errgroup和sync.WaitGroup類似,都可以發(fā)起執(zhí)行并等待一組協(xié)程直到所有協(xié)程運行結(jié)束,本文主要為大家整理了一些errgroup的常見誤用,有需要的可以參考下
    2024-01-01
  • golang中的空接口使用詳解

    golang中的空接口使用詳解

    這篇文章主要介紹了golang中的空接口使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Go 語言結(jié)構(gòu)實例分析

    Go 語言結(jié)構(gòu)實例分析

    在本篇文章里小編給大家整理的是一篇關(guān)于Go 語言結(jié)構(gòu)實例分析的相關(guān)知識點,有興趣的朋友們可以學(xué)習(xí)下。
    2021-07-07
  • golang容易導(dǎo)致內(nèi)存泄漏的6種情況匯總

    golang容易導(dǎo)致內(nèi)存泄漏的6種情況匯總

    內(nèi)存泄漏是我們在生產(chǎn)環(huán)境中必須面臨的問題,下面這篇文章主要給大家介紹了關(guān)于golang容易導(dǎo)致內(nèi)存泄漏的6種情況,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01

最新評論