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!