Adakah Jenis Saluran Go Agnostik?

Linda Hamilton
Lepaskan: 2024-11-04 13:00:29
asal
565 orang telah melayarinya

Is Go's Channel Type Agnostic?

Taip Saluran Agnostik dalam Go

Soalan:

Bolehkah berbilang jenis data berbeza dihantar melalui saluran generik tunggal dalam Go?

Jawapan:

Ya, boleh. Menggunakan contoh yang disediakan dalam pautan taman permainan, saluran boleh dibuat menggunakan sintaks berikut: greet: make(chan pet); kemudian, sebarang jenis yang melaksanakan antara muka haiwan peliharaan boleh dihantar dengan lancar melalui saluran ini.

Untuk mencapai agnostik jenis lengkap, saluran antara muka jenis chan{} boleh digunakan. Apabila menerima nilai daripada saluran sedemikian, refleksi boleh digunakan untuk menentukan jenisnya.

Contoh:

Contoh ringkas (walaupun mungkin bukan idiomatik) yang menunjukkan konsep ini :

<code class="go">ch := make(chan interface{})

go func() {
    select {
    case p := <-ch:
        fmt.Printf("Received a %q", reflect.TypeOf(p).Name())
    }
}()
ch <- "this is it"</code>
Salin selepas log masuk

Contoh yang Diperbaiki:

Pendekatan alternatif yang dicadangkan oleh BurntSushi5 menggunakan suis jenis:

<code class="go">p := <-ch
switch p := p.(type) {
case string:
    fmt.Printf("Got a string %q", p)
default:
    fmt.Printf("Type of p is %T. Value %v", p, p)
}</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Adakah Jenis Saluran Go Agnostik?. 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!