Bagaimanakah Kami Boleh Mencipta Fungsi Generik di Golang untuk Jenis Data Berbeza?

Mary-Kate Olsen
Lepaskan: 2024-10-27 04:09:30
asal
136 orang telah melayarinya

 How Can We Create Generic Functions in Golang for Different Data Types?

Parameter Kaedah Generik di Golang

Dalam Go, keperluan biasa ialah mempunyai fungsi yang beroperasi pada data jenis yang berbeza. Ambil, sebagai contoh, fungsi yang mengira bilangan elemen dalam kepingan jenis tertentu. Bagaimanakah seseorang boleh mereka bentuk fungsi ini untuk mengendalikan apa-apa jenis data, bukan hanya jenis khusus yang direka bentuk pada mulanya?

Satu pendekatan ialah menggunakan antara muka, yang pada asasnya merupakan kontrak yang menentukan satu set kaedah yang mesti sesuatu jenis laksanakan untuk mematuhi antara muka. Dengan menggunakan antara muka sebagai parameter kaedah, kami boleh menulis fungsi generik yang boleh berfungsi dengan mana-mana jenis yang melaksanakan antara muka yang diperlukan.

Pertimbangkan contoh berikut, di mana kami bertujuan untuk mencipta fungsi Kiraan generik yang mengira bilangan elemen dalam sekeping:

<code class="go">func Count[T any](s []T) int {
  return len(s)
}</code>
Salin selepas log masuk

Menggunakan generik seperti ini, kita boleh menghantar kepingan apa-apa jenis ke Count, membenarkannya mengira elemen secara dinamik berdasarkan jenis input.

Selain itu, kita boleh menggunakan antara muka untuk melaksanakan kaedah generik untuk tugas tertentu. Sebagai contoh, kami mungkin mentakrifkan antara muka Boleh Dikenalpasti dengan kaedah GetID dan mencipta fungsi FindByID generik yang mencari elemen dalam hirisan berdasarkan nilai IDnya, tanpa mengira jenis elemen hirisan sebenar:

<code class="go">type Identifiable interface {
  GetID() int
}

func FindByID[T Identifiable](s []T, id int) *T {
  for i, v := range s {
    if v.GetID() == id {
      return &s[i]
    }
  }
  return nil
}</code>
Salin selepas log masuk

Dengan menggabungkan antara muka dan generik, kami memperoleh kuasa untuk mencipta fungsi yang sangat fleksibel dan boleh beroperasi dengan berkesan pada pelbagai jenis data.

Atas ialah kandungan terperinci Bagaimanakah Kami Boleh Mencipta Fungsi Generik di Golang untuk Jenis Data Berbeza?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!