Go語言中空切片與空切片的區別
在本文中,我們將瞭解宣告為空切片和空切片的切片之間的區別和相似之處。
Go語言中的切片用於儲存一系列元素。切片可以隨時擴充套件,並且它們的宣告方式與陣列相同,但沒有定義其容量。
空切片
空切片是在宣告時,我們只定義名稱和資料型別,而不使用內建的 **make** 函式的切片。
空切片是指其零值為 nil 的切片,並且切片的長度和容量在開始時也為 0,並且它也沒有底層陣列。
示例 1
考慮以下程式碼。
package main
import (
"fmt"
)
func main() {
var sl []string
fmt.Println(sl)
fmt.Println(len(sl))
fmt.Println(cap(sl))
sl = append(sl, "India", "Japan")
fmt.Println(sl)
fmt.Println(len(sl))
fmt.Println(cap(sl))
}
在上面的程式碼中,我們聲明瞭一個空切片,然後列印了該切片的長度和容量。
輸出
如果我們對上述程式碼執行命令 **go run main.go**,那麼我們將在終端中獲得以下輸出。
[] 0 0 [India Japan] 2 2
空切片
空切片是使用內建的 **make** 函式宣告的切片,並且其零值不是 **nil**。
示例 2
考慮以下程式碼。
package main
import (
"fmt"
)
func main() {
sl := make([]string, 0)
fmt.Println(sl)
fmt.Println(sl == nil)
fmt.Println(len(sl))
fmt.Println(cap(sl))
sl = append(sl, "India", "Japan")
fmt.Println(sl)
fmt.Println(len(sl))
fmt.Println(cap(sl))
}
輸出
如果我們對上述程式碼執行命令 **go run main.go**,那麼我們將在終端中獲得以下輸出。
[] false 0 0 [India Japan] 2 2
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP