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

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

Linda Hamilton
Lepaskan: 2024-12-19 04:34:08
asal
804 orang telah melayarinya

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

Amalan Terbaik untuk Memulakan Kepingan Kosong

Dalam Go, mencipta kepingan kosong dengan saiz tidak tetap boleh dicapai menggunakan dua kaedah:

  • buat([]int, 0)
  • []int{}

Pendekatan yang manakah dianggap sebagai cara yang betul bergantung pada faktor berikut:

Persamaan Semantik:

Kedua-dua kaedah menghasilkan kepingan kosong. Mereka adalah sama dari segi semantik dan akan berkelakuan dengan cara yang sama dalam kebanyakan senario.

Pelaksanaan Dalaman:

  • fungsi make(): Membuat panggilan dalaman ke masa jalan untuk mencipta kepingan.
  • []{} sintaks: Mencipta literal komposit, secara tersirat menggunakan make() di bawah hud.

Prestasi:

Tiada satu pun pilihan di atas melibatkan sebarang peruntukan. Jadi, tiada perbezaan prestasi antara mereka.

Pilihan Lain:

Anda juga boleh mengisytiharkan kepingan kosong menggunakan nilai nol:

  • var myslice []int

Walau bagaimanapun, ambil perhatian bahawa kepingan nil berfungsi bersamaan dengan kepingan kosong, tetapi ia menunjuk kepada tiada.

JSON Marshaling:

  • Nil slice: Marshals menjadi "null"
  • Potongan kosong: Marshals menjadi "[]"

Akhirnya, pilihan antara make() dan []{} terutamanya soal keutamaan. Walau bagaimanapun, adalah penting untuk mengetahui perbezaan dalam pelaksanaan dalaman apabila memilih antara dua pilihan.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan