Rumah > pembangunan bahagian belakang > Golang > Melewati parameter jenis dengan kekangan tepat kepada fungsi dengan parameter itu?

Melewati parameter jenis dengan kekangan tepat kepada fungsi dengan parameter itu?

WBOY
Lepaskan: 2024-02-05 23:48:11
ke hadapan
623 orang telah melayarinya

Melewati parameter jenis dengan kekangan tepat kepada fungsi dengan parameter itu?

Kandungan soalan

Saya mula menggunakan go generik dan saya sukar memahami sebab kod ini tidak disusun:

func f(string) {}

func xyz[T string](p T) {
    f(p) // Error! Cannot use 'p' (type T) as the type string
}
Salin selepas log masuk

Dalam fungsi xyz, mengapa kita tidak boleh menganggap bahawa t mempunyai kekangan jenis supaya t adalah jenis rentetan?

Saya tahu saya boleh menulis f(string(p)), tetapi saya masih berminat dengan jawapan kepada soalan itu.


Jawapan betul


Ini kerana peraturan kebolehtugasan, yang dalam kes khusus anda ialah peraturan terakhir.

v ialah parameter jenis, t bukan jenis bernama , dan nilai setiap jenis dalam set jenis v boleh diberikan kepada t.

Type string ialah string 是一个命名类型,因此,尽管 t 类型集中的每个类型都可分配给 string,但类型参数 t 本身不可分配给 stringnamed type

, jadi walaupun setiap jenis dalam set type t boleh diberikan kepada string, parameter jenis t sendiri tidak boleh diserahkan kepada string.

Anda boleh membandingkannya dengan jenis tanpa nama

. 🎜
func f([]string) {}

func xyz[T []string](p T) {
    f(p) // no issue
}
Salin selepas log masuk

Atas ialah kandungan terperinci Melewati parameter jenis dengan kekangan tepat kepada fungsi dengan parameter itu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan