Ada beberapa cara berbeda untuk mendeklarasikan slices in Go.

IMO, ada arti tersirat untuk masing-masing cara berbeda ini:

  1. var foo []T : Deklarasikan potongan bahwa kode akan mulai menambahkan sejumlah item yang tidak diketahui dan/atau jumlahnya tidak penting.
  2. var foo = []T{ … } atau foo := []T{ … } : Dimana adalah daftar item bertipe T. Deklarasikan sebuah irisan yang kodenya telah mengetahui cara mengisinya dan kemungkinannya tidak akan banyak berubah atau tidak berubah sama sekali saat direferensikan. Lebih suka yang nanti. Juga dilihat sebagai return []T{ … }.
  3. foo := make([]T, ‹len›, ‹cap›) : Mendeklarasikan bagian dari kapasitas yang diketahui yang tidak diperkirakan akan terlampaui saat menambahkan atau itu adalah bagian kapasitas minimum yang akan digunakan. Umumnya bentuk yang lebih pendek tanpa kapasitas (mis. make([]T, ‹len›)), hanya boleh digunakan saat membuat irisan sebagai target loop manipulasi rentang salinan atau indeks.

Saya merasa bahwa makna di atas membuat kode lebih mudah dipahami dan dikonsumsi. Saya mendorong orang untuk mempertimbangkan hal ini ketika mendeklarasikan dan menggunakan irisan.