切片(slice)是建立在陣列之上的更方便,更靈活,更強大的資料結構。切片並不儲存任何元素而只是對現有陣列的引用。
①定義乙個切片,然後讓切片去引用乙個已經建立好的陣列
package main
import (
"fmt"
) func main()
var slice = arr[1:3]
fmt.println("arr=", arr)
fmt.println("slice=", slice)
fmt.println("slice len", len(slice))
fmt.println("slice cap", cap(slice))
}②通過make來建立切片
基本語法:var 切片名 type = make(, len, [cap]);引數說明:type是資料型別、len是大小、cap是切片容量(=長度)
通過make方式建立切片可以指定切片大小和容量
如果沒有給切片的各個元素賦值,那麼就會使用預設值(int、float=>0, strint=>"", bool=>false)
榮國make方式建立的切片對應的陣列是由make底層維護,對外不可見,也就是只能通過slice訪問各個元素
package main
import (
"fmt"
) func main()
③定義乙個切片,直接就指定具體陣列,使用原理類似於make的方式
package main
import (
"fmt"
) func main()
fmt.println("slice=", slice) //slice= [zhangsan lisi wangwu]
fmt.println("slice len", len(slice)) //slice len 3
fmt.println("slice cap", cap(s程式設計客棧lice)) //slice cap 3
}第一種方式是直接引用陣列,這個陣列是事先存在的,程式設計師可見
第二種方式是通過make來建立切片,make也會建立乙個陣列,是由切片在底層維護,程式設計師不可見
package main
import "fmt"
func main()
fmt.println("dcl:", t)
// 我們也可以建立多維切片,和陣列不同的是,切片元素的長度也是可變的。
twod := make(int, 3)
for i := 0; i < 3; i+sjvmqemped+
}fmt.println("2d: ", twod)}結果
emp: [ ]
set: [a b c]
get: c
len: 3
apd: [a b c d e f]
cpy: [a b c d e f]
sl1: [c d e]
sl2: [a b c d e]
sl3: [c d e f]
dcl: [g h i]
2d: [[0] [1 2] [2 3 4]]
本文標題: golang 切片的三種使用方式及區別的說明
本文位址: /jiaoben/golang/387884.html
Golang切片的三種簡單使用方式及區別
概念 切片 slice 是建立在陣列之上的更方便,更靈活,更強大的資料結構。切片並不儲存任何元素而只是對現有陣列的引用。三種方式及細節案例 定義乙個切片,然後讓切片去引用乙個已經建立好的陣列 package main import fmt func main var slice arr 1 3 fm...
Golang 變數申明的三種方式
golang 申明變數主要有三種方式 一是使用 var 關鍵字,申明包級或函式級變數 二是使用短變數申明方式,只能申明函式級變數,且需指明變數值 三是使用 const 關鍵字,申明包級或函式級常量。1.var var 可以申明包級變數,短變程式設計客棧量申明方式不可以,這是二者最大的區別。var n...
Golang三種方式實現超時退出
前段時間發現線上有個服務介面,總是間歇性告警,有時候一天兩三次,有時候一天都沒有。告警的邏輯是在乙個介面中非同步呼叫了另乙個http介面,這個http介面呼叫出現超時。但是我去問了負責這個http介面的同學,人家說他們的介面相應都是毫秒級別,還截圖監控了,有圖有真相,我還能說啥。但是,超時是確實存在...