Rumah > pembangunan bahagian belakang > Golang > Bagaimana Mengendalikan Nilai Nihil Pengembalian untuk Jenis Generik dalam Go?

Bagaimana Mengendalikan Nilai Nihil Pengembalian untuk Jenis Generik dalam Go?

Patricia Arquette
Lepaskan: 2024-12-31 16:05:11
asal
163 orang telah melayarinya

How to Handle Returning Nil Values for Generic Types in Go?

Mengembalikan Nilai Lalai untuk Jenis Generik

Dalam Go, pernyataan "tidak boleh menggunakan nil sebagai nilai T dalam penyataan pemulangan" berlaku apabila cuba untuk pulangkan sifar untuk jenis generik. Ini kerana nil bukan nilai yang sah untuk semua jenis. Sebagai contoh, dalam kod yang disediakan:

func (list *mylist[T]) pop() T {...}
func (list *mylist[T]) getfirst() T {...}
Salin selepas log masuk

Jika T adalah jenis int, tiada nilai nil yang wajar. Begitu juga, untuk struct, nil bukan nilai yang sah.

Sebaliknya, anda harus menggunakan nilai sifar untuk jenis yang diberikan. Nilai sifar ialah:

  • nol untuk penunjuk dan hirisan
  • "" untuk rentetan
  • 0 untuk integer dan nombor titik terapung

Begini cara anda boleh mengembalikan nilai sifar menggunakan fungsi generik:

func getZero[T any]() T {
    var result T
    return result
}
Salin selepas log masuk

Ini fungsi akan mengembalikan nilai sifar untuk sebarang jenis yang digunakan sebagai hujah jenis.

Menguji fungsi menghasilkan keputusan berikut:

int 0
string ""
image.Point (0,0)
*float64 nil
Salin selepas log masuk

Seperti yang anda lihat, nilai sifar yang sesuai dikembalikan untuk berbeza jenis, memberikan nilai lalai yang wajar untuk fungsi dan jenis generik.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Nilai Nihil Pengembalian untuk Jenis Generik 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