Rumah >pembangunan bahagian belakang >Golang >`make([]int, 0) lwn. []int{} lwn. nil: Apakah Cara Terbaik untuk Memulakan Slice Kosong dalam Go?`

`make([]int, 0) lwn. []int{} lwn. nil: Apakah Cara Terbaik untuk Memulakan Slice Kosong dalam Go?`

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-19 14:12:10373semak imbas

`make([]int, 0) vs. []int{} vs. nil: What's the Best Way to Initialize an Empty Slice in Go?`

Menyingkap Kaedah Optimum untuk Memulakan Slice Kosong

Apabila mengisytiharkan kepingan kosong dengan saiz yang fleksibel, persoalan timbul: Yang manakah pendekatan permulaan pilihan - make([]int, 0) atau []int{}?

Kedua-dua pilihan membawa kepada hasil semantik yang sama. Walau bagaimanapun, make([]int, 0) mencetuskan panggilan dalaman ke runtime.makeslice dalam Go 1.16.

Sebagai alternatif, anda boleh memilih nilai nol:

var myslice []int

Seperti yang dinyatakan dalam blog Golang.org, sekeping nil berfungsi seperti sekeping sifar panjang walaupun tidak menunjuk kepada apa-apa. Panjangnya ialah sifar dan ia membenarkan penambahan dengan peruntukan.

Walau bagaimanapun, ambil perhatian bahawa kepingan nol bersiri sebagai "null" dalam JSON, manakala kepingan kosong dijadikan sebagai "[]".

Tidak kira kaedah yang dipilih, tiada satu pun akan mencetuskan peruntukan memori, seperti yang dijelaskan oleh @ArmanOrdookhani.

Atas ialah kandungan terperinci `make([]int, 0) lwn. []int{} lwn. nil: Apakah Cara Terbaik untuk Memulakan Slice Kosong dalam Go?`. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn