Apakah jenis golang baru?
May 10, 2023 pm 09:52 PMGolang ialah bahasa pengaturcaraan yang semakin popular Semasa perkembangan pesatnya, soalan biasa ialah parameter jenis yang perlu disediakan apabila menggunakan kata kunci baharu dalam Golang. Soalan ini agak rumit dan memerlukan pemahaman yang mendalam tentang sistem jenis di Golang dan sifat kata kunci baharu.
Pertama, mari kita semak kata kunci baharu dalam Golang. Kata kunci baharu digunakan untuk memperuntukkan ruang memori pada timbunan dan mengembalikan alamatnya. Khususnya, new menerima parameter jenis dan mengembalikan penunjuk jenis itu. Berikut ialah contoh penggunaan kata kunci baharu:
var p *int p = new(int)
Dalam contoh ini, kami menggunakan kata kunci baharu untuk mencipta penunjuk p yang menunjuk kepada jenis integer. Kita boleh menggunakan penunjuk p untuk mengakses ruang memori yang baru diperuntukkan jenis integer.
Walau bagaimanapun, jika kita cuba menghantar jenis struktur kepada baharu sebagai parameter, contohnya:
type Person struct { name string age int } var p *Person p = new(Person)
Ini terbahagi kepada dua langkah Pertama, jenis struktur bernama Person ditakrifkan gunakan kata kunci baharu untuk memperuntukkan ruang memori untuknya. Begitu juga, kita boleh menggunakan penunjuk p untuk mengakses ruang memori yang baru diperuntukkan bagi jenis Orang.
Jadi, apakah jenis parameter yang perlu kita berikan kepada kata kunci baharu? Malah, kata kunci baharu dalam Golang boleh menerima sebarang jenis parameter. Khususnya, parameter jenisnya boleh menjadi jenis terbina dalam, jenis tersuai, jenis struktur, jenis tatasusunan, atau juga jenis antara muka kosong. Tiada sekatan antara jenis ini, dan sebarang jenis boleh digunakan sebagai parameter baharu.
Tidak kira jenisnya, yang baharu akan memperuntukkan ruang memori yang mencukupi pada timbunan dan mengembalikan penunjuk yang sepadan. Oleh itu, kita boleh menghantar apa-apa jenis pembolehubah atau nilai kepada yang baru dengan selamat, dan ia akan memperuntukkan ruang memori untuknya dan mengembalikan penunjuk jenis yang sepadan.
Perlu diingat bahawa dalam Golang, jenis penunjuk menyokong nilai nil, iaitu, penunjuk boleh menjadi batal. Ini bermakna jika kita menggunakan new untuk memperuntukkan memori dan menetapkannya kepada pembolehubah penunjuk, nilai awal pembolehubah penunjuk akan menjadi sifar. Contohnya:
var p *Person p = new(Person) fmt.Println(p) // 输出 nil
Dalam contoh ini, kami mentakrifkan pembolehubah penunjuk p yang menunjuk kepada jenis Orang dan menggunakan kata kunci baharu untuk memperuntukkan ruang memori untuknya. Memandangkan baru mengembalikan jenis penunjuk, dan nilai lalai jenis penunjuk ialah sifar, nilai awal pembolehubah p ialah sifar.
Untuk meringkaskan, kata kunci baharu dalam Golang boleh digunakan untuk memperuntukkan memori untuk sebarang jenis pembolehubah atau nilai dan mengembalikan penunjuk jenis yang sepadan. Memandangkan jenis penuding menyokong nilai sifar, nilai awal pembolehubah penunjuk yang dibuat menggunakan kata kunci baharu ialah sifar. Apabila menggunakan baharu, kita tidak perlu mempertimbangkan sekatan jenis, kita hanya perlu lulus pembolehubah atau nilai yang sepadan seperti yang diperlukan.
Atas ialah kandungan terperinci Apakah jenis golang baru?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

GO Language Pack Import: Apakah perbezaan antara garis bawah dan tanpa garis bawah?

Bagaimana untuk melaksanakan pemindahan maklumat jangka pendek antara halaman dalam kerangka beego?

Bagaimana saya menulis objek dan stub untuk ujian di GO?

Bagaimana cara menukar senarai hasil pertanyaan mysql ke dalam slice struktur tersuai dalam bahasa Go?

Bagaimana saya boleh menentukan kekangan jenis tersuai untuk generik di GO?

Bagaimana saya boleh menggunakan alat pengesanan untuk memahami aliran pelaksanaan aplikasi saya?

Bagaimana anda menulis ujian unit di GO?

Bagaimana cara menulis fail dalam bahasa Go dengan mudah?
