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
Patricia Arquetteasal
2024-12-31 16:05:11198semak imbas

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 {...}

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
}

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

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!

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