最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

本文大綱

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

1、字符串String

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

import ("fmt")
func main() {  
    name := "Hello World" //聲明一個(gè)值為 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ù)組長度不能擴(kuò)展的問題。是一種方便、靈活且強(qiáng)大的包裝器。它本身沒有任何數(shù)據(jù),只是對(duì)現(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])
   /* 默認(rèn)下限為 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)置類型,將一個(gè)值與一個(gè)鍵關(guān)聯(lián)起來,是一種無序的鍵值對(duì)的集合,可以使用相應(yīng)的鍵檢索值(類比Java中的Map來記)。

// 聲明一個(gè)map類型,[]內(nèi)的類型指任意可以進(jìn)行比較的類型 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 對(duì),各個(gè)國家對(duì)應(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])
   }

運(yùn)行結(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操作詳解的詳細(xì)內(nèi)容,更多關(guān)于GO基本類型String Slice Map的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • golang配置文件解析器之goconfig框架的使用詳解

    golang配置文件解析器之goconfig框架的使用詳解

    goconfig是一個(gè)易于使用,支持注釋的 Go 語言配置文件解析器,該文件的書寫格式和 Windows 下的 INI 文件一樣,本文主要為大家介紹了goconfig框架的具體使用,需要的可以參考下
    2023-11-11
  • OpenTelemetry-go的SDK使用方法詳解

    OpenTelemetry-go的SDK使用方法詳解

    這篇文章主要介紹了OpenTelemetry-go的SDK使用方法,OpenTelemetry幫我們實(shí)現(xiàn)了相應(yīng)語言的SDK,所以我們只需要進(jìn)行調(diào)用即可,本文根據(jù)官方文檔實(shí)例講解,需要的朋友可以參考下
    2022-09-09
  • 深入理解Golang的單元測試和性能測試

    深入理解Golang的單元測試和性能測試

    Go語言提供了強(qiáng)大的測試工具,下面這篇文章主要給大家介紹了關(guān)于Golang單元測試和性能測試的相關(guān)資料,文中通過示例代碼給大家詳細(xì)介紹了單元測試和性能測試的相關(guān)內(nèi)容,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • 詳解Golang如何動(dòng)態(tài)獲取配置文件

    詳解Golang如何動(dòng)態(tài)獲取配置文件

    項(xiàng)目中經(jīng)常獲取一些常用配置文件,當(dāng)有配置文件中的參數(shù)被修改后,如何的實(shí)時(shí)獲取配置文件就很關(guān)鍵了,下面小編就來講講如何利用viper實(shí)時(shí)獲取配置文件吧
    2023-08-08
  • Go語言Goroutines?泄漏場景與防治解決分析

    Go語言Goroutines?泄漏場景與防治解決分析

    這篇文章主要為大家介紹了Go語言Goroutines?泄漏場景與防治解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 基于golang編寫一個(gè)word/excel/ppt轉(zhuǎn)pdf的工具

    基于golang編寫一個(gè)word/excel/ppt轉(zhuǎn)pdf的工具

    這篇文章主要為大家詳細(xì)介紹了如何基于golang編寫一個(gè)word/excel/ppt轉(zhuǎn)pdf的工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2024-11-11
  • 深入理解Go語言對(duì)象池

    深入理解Go語言對(duì)象池

    對(duì)象池是一種在編程中用于優(yōu)化資源管理的技術(shù),本文主要介紹了深入理解Go語言對(duì)象池,對(duì)象池通常通過sync.Pool包或自定義數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),下面就來介紹一下
    2024-01-01
  • Go語言時(shí)間管理利器之深入解析time模塊的實(shí)戰(zhàn)技巧

    Go語言時(shí)間管理利器之深入解析time模塊的實(shí)戰(zhàn)技巧

    本文深入解析了Go語言標(biāo)準(zhǔn)庫中的time模塊,揭示了其高效用法和實(shí)用技巧,通過學(xué)習(xí)time模塊的三大核心類型(Time、Duration、Timer/Ticker)以及高頻使用場景,開發(fā)者可以更好地處理時(shí)間相關(guān)的任務(wù),感興趣的朋友一起看看吧
    2025-03-03
  • k8s在go語言中的使用及client?初始化簡介

    k8s在go語言中的使用及client?初始化簡介

    這篇文章主要為大家介紹了k8s在go語言中的使用及client?初始化簡介,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • 細(xì)說Go語言中空結(jié)構(gòu)體的奇妙用途

    細(xì)說Go語言中空結(jié)構(gòu)體的奇妙用途

    Go語言中,我們可以定義空結(jié)構(gòu)體,即沒有任何成員變量的結(jié)構(gòu)體,使用關(guān)鍵字?struct{}?來表示。這種結(jié)構(gòu)體似乎沒有任何用處,但實(shí)際上它在?Go?語言中的應(yīng)用非常廣泛,本文就來詳解講講
    2023-05-05

最新評(píng)論

山阳县| 钦州市| 论坛| 恭城| 威信县| 深州市| 合江县| 江都市| 衡南县| 邵阳县| 饶平县| 九寨沟县| 基隆市| 衡东县| 萝北县| 涞水县| 四子王旗| 重庆市| 永泰县| 安图县| 浦北县| 花垣县| 柳河县| 永仁县| 桐乡市| 洛浦县| 喜德县| 根河市| 茶陵县| 上栗县| 板桥市| 元氏县| 宁德市| 凤庆县| 格尔木市| 从化市| 县级市| 西贡区| 武胜县| 益阳市| 竹山县|