Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah yang dimaksudkan oleh "...Jenis" dalam tandatangan fungsi Go?

Apakah yang dimaksudkan oleh "...Jenis" dalam tandatangan fungsi Go?

Linda Hamilton
Linda Hamiltonasal
2024-11-04 19:09:01537semak imbas

What does

Memahami Maksud "...Jenis" dalam Go

In Go, pengendali "...", apabila digunakan dalam tandatangan fungsi, menunjukkan bahawa parameter akhir adalah variadic. Fungsi variadic boleh menerima bilangan argumen yang tidak tentu jenis yang sama untuk parameter terakhirnya.

Pertimbangkan petikan kod ini daripada dokumentasi Go:

<code class="go">func append(slice []Type, elems ...Type) []Type</code>

Di sini, fungsi tambah mengambil sekeping taip []Taip sebagai parameter pertama dan argumen variadik jenis Jenis sebagai parameter terakhirnya.

Dalam Go, "...Type" berfungsi sebagai pemegang tempat untuk sebarang jenis. Ia membenarkan fungsi untuk menerima sebarang bilangan hujah yang mematuhi jenis yang diisytiharkan. Sebagai contoh, contoh berikut menunjukkan penggunaan fungsi tambah:

<code class="go">s := []int{1, 2, 3, 4, 5}
s1 := append(s, 6, 7, 8) // appending individual integers to the slice
s2 := append(s, []int{9, 10}) // appending a slice of integers to the slice</code>

Dalam kedua-dua kes, fungsi tambah dengan betul mengendalikan argumen variadic dan mengembalikan kepingan yang dikemas kini.

Adalah penting untuk ambil perhatian bahawa pengendali "..." digunakan secara khusus untuk parameter terakhir tandatangan fungsi. Argumen variadic membolehkan lebih fleksibiliti dalam reka bentuk fungsi, membolehkan fungsi mengendalikan bilangan nilai input yang berbeza-beza sambil mengekalkan keselamatan jenis.

Atas ialah kandungan terperinci Apakah yang dimaksudkan oleh "...Jenis" dalam tandatangan fungsi 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