Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tidak boleh menggunakan struct sebagai jenis struct {...}

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

WBOY
WBOYke hadapan
2024-02-10 19:06:09666semak imbas

不能使用 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

}

Saya mendapat ralat kompilasi ini:

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

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam