Rumah >pembangunan bahagian belakang >Golang >Melewati parameter jenis dengan kekangan tepat kepada fungsi dengan parameter itu?
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 }
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.
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
本身不可分配给 string
named 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 }
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!