Tidak boleh menggunakan struct sebagai jenis struct {...}

WBOY
Lepaskan: 2024-02-10 19:06:09
ke hadapan
669 orang telah melayarinya

不能使用 struct 作为类型 struct {...}

editor php Xiaoxin akan memperkenalkan nota penting dalam artikel ini: dalam PHP, anda tidak boleh menggunakan "struct" sebagai jenis. Ini disebabkan oleh batasan bahasa PHP itu sendiri, yang tidak menyokong definisi jenis "struct" yang serupa dengan yang terdapat dalam bahasa C. Dalam PHP, kita boleh menggunakan kelas untuk menentukan struktur data tersuai, serta sifat dan kaedah yang berkaitan. Dengan menggunakan kelas, kami boleh mengendalikan data dengan lebih fleksibel dan berkuasa, serta melaksanakan logik dan fungsi yang lebih kompleks. Oleh itu, semasa menulis kod PHP, ingatlah untuk mengelak daripada menggunakan "struct" sebagai definisi jenis dan sebaliknya gunakan kelas. Ini boleh lebih mematuhi ciri dan spesifikasi bahasa PHP, menjadikan kod lebih mudah dibaca, difahami dan diselenggara.

Kandungan soalan

Saya ada kod ini:

type Iterable[T any] struct {
    Val  T
    End  T
    Next func() (bool, T)
}

func acceptStructWithNext[T any](r struct{ Next func() (bool, T) }) {
    fmt.Println(r)
}

func main() {

    iterable := Iterable[int]{
        Val: 0,
        End: 100,
        Next: func() (bool, int) {
            return true, 0
        },
    }

    acceptStructWithNext[int](iterable) // error is here

}
Salin selepas log masuk

Saya mendapat ralat kompilasi ini:

<code>
Cannot use 'iterable' (type Iterable[int]) as the type struct {...}
</code>
Salin selepas log masuk

Saya fikir jenis struct harus membenarkan perkara jenis ini - di manakah silap saya?

Penyelesaian

Ya, tetapi Go tidak mempunyai "jenis struktur". Pada tahap tertentu, faedah jenis struktur diperoleh melalui peraturan kepuasan tersirat antara muka. Tetapi ini hanya berfungsi pada antara muka.

Sila rujuk https://www.php.cn/link/2a2f98d3597419498e4d734d8c2dd106

Anggap bahawa Go akan mempunyai jenis struct seperti buku teks.

Atas ialah kandungan terperinci Tidak boleh menggunakan struct sebagai jenis struct {...}. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!