<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          golang 數(shù)組與切片【基礎(chǔ)操作】

          共 344字,需瀏覽 1分鐘

           ·

          2022-04-18 16:25

          package?main

          import?"fmt"

          func?main()?{
          ????var?team?=?[...]string{"hammer",?"soldier",?"mum"}
          ????fmt.Println(team)?//[hammer?soldier?mum]

          ????for?k,?v?:=?range?team?{
          ????????fmt.Println(k,?v)
          ????}
          ????//0?hammer
          ????//1?soldier
          ????//2?mum

          ????a?:=?2
          ????b?:=?28
          ????c?:=?a?+?b
          ????fmt.Println(c)?//?30

          ????var?build?[30]int
          ????for?i?:=?0;?i?30;?i++?{?//0?~?29
          ????????build[i]?=?i?+?1
          ????}

          ????//切片全部整體
          ????fmt.Println(build)
          ????//[1?2?3?4?5?6?7?8?9?10?11?12?13?14?15?16?17?18?19?20?21?22?23?24?25?26?27?28?29?30]
          ????fmt.Println(build[:])???????????//與切片本身等效
          ????fmt.Println(build[:len(build)])?//與切片本身等效
          ????fmt.Println(build[:30])?????????//與切片本身等效

          ????//部分
          ????fmt.Println(build[5:10])?//[6?7?8?9?10]
          ????fmt.Println(build[18:])??//[19?20?21?22?23?24?25?26?27?28?29?30]
          ????fmt.Println(build[:2])???//[1?2]
          ????fmt.Println(build[0:0])??//[]?空切片,一般用于切片復(fù)位
          ????fmt.Println(build[0:1])??//[1]
          ????fmt.Println(build[30:])??//[]

          ????var?numbers?[]int
          ????for?i?:=?0;?i?10;?i++?{
          ????????numbers?=?append(numbers,?i)
          ????????fmt.Printf("len:?%d?cap:%d?pointer:%p?\n",?len(numbers),?cap(numbers),?numbers)
          ????}
          ????/*
          ???????len:?1?cap:1?pointer:0xc000016400
          ???????len:?2?cap:2?pointer:0xc000016410

          ???????len:?3?cap:4?pointer:0xc000014120
          ???????len:?4?cap:4?pointer:0xc000014120

          ???????len:?5?cap:8?pointer:0xc00001a100
          ???????len:?6?cap:8?pointer:0xc00001a100
          ???????len:?7?cap:8?pointer:0xc00001a100
          ???????len:?8?cap:8?pointer:0xc00001a100

          ???????len:?9?cap:16?pointer:0xc000102080
          ???????len:?10?cap:16?pointer:0xc000102080
          ????*/


          ????//??切片復(fù)制
          ????//設(shè)置元素?cái)?shù)量
          ????const?count?=?10
          ????//預(yù)分配足夠多的元素切片
          ????srcData?:=?make([]int,?count)

          ????//將切片賦值
          ????for?i?:=?0;?i?????????srcData[i]?=?i
          ????}

          ????//引用切片數(shù)據(jù)
          ????refData?:=?srcData

          ????//預(yù)分配足夠多的元素切片
          ????copyData?:=?make([]int,?count)

          ????//將數(shù)據(jù)分配到新的切片空間copyData中
          ????copy(copyData,?srcData)
          ????fmt.Println(copyData,?refData)?//[0?1?2?3?4?5?6?7?8?9]?[0?1?2?3?4?5?6?7?8?9]

          ????//修改原始數(shù)據(jù)的第一個元素
          ????srcData[0]?=?999

          ????//打印復(fù)制切片的第一個和最后一個元素;復(fù)制數(shù)據(jù)不變,原始數(shù)據(jù)改變
          ????fmt.Println(copyData[0],?copyData[count-1],?copyData,?refData)
          ????//0?9?[0?1?2?3?4?5?6?7?8?9]?[999?1?2?3?4?5?6?7?8?9]

          ????copy(copyData,?srcData[4:6])
          ????fmt.Println(copyData,?refData,srcData)
          ????//[4?5?2?3?4?5?6?7?8?9]?[999?1?2?3?4?5?6?7?8?9][999?1?2?3?4?5?6?7?8?9]

          ????for?i?:=?0;?i?5;?i++?{
          ????????fmt.Printf("i=?%d??v=?%d?\n",i,copyData[i])//?4?5?2?3?4?%
          ????}

          ????//刪除元素
          ????seq:=[]string{"a","b","c","d","e","f"}
          ????//指定刪除位置
          ????delIndex:=2
          ????//查看刪除前和之后的元素
          ????fmt.Println(seq[:delIndex],seq[delIndex+1:])
          //[a?b]?[d?e?f]
          ????//將刪除前后的元素連接起來
          ????seq=append(seq[:delIndex],seq[delIndex+1:]...)
          ????fmt.Println(seq)//??[a?b?d?e?f]

          }
          精彩推薦
          golang實(shí)現(xiàn)RPC的幾種方式
          漲見識| 字節(jié)PHP/Golang社招面經(jīng)
          在Windows10安裝部署Golang開發(fā)環(huán)境
          Golang 新手要注意的陷阱和常見錯誤(一)
          面試官:說下Golang Slice的底層實(shí)現(xiàn),淚崩了!
          瀏覽 62
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青娱乐在线视频分类 | 秘 黄 视频免费看 | 99国产精品久久久久久久 | 做爱视频动漫 | 日韩成人激情 |