Adakah bahasa go mempunyai pembina?
Bahasa Go tidak mempunyai pembina. Bahasa Go, sebagai bahasa berstruktur, tidak mempunyai pembina dalam bahasa berorientasikan objek Walau bagaimanapun, kesan serupa pembina dalam bahasa berorientasikan objek boleh dicapai dalam beberapa cara, iaitu, menggunakan proses permulaan struktur untuk mensimulasikan. pelaksanaan pembina.
Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.
Pembina ialah kaedah khas, terutamanya digunakan untuk memulakan objek semasa menciptanya, iaitu, memberikan nilai awal kepada pembolehubah ahli objek. Kelas khas boleh mempunyai berbilang pembina, yang boleh dibezakan mengikut bilangan parameter atau jenis parameter, iaitu kelebihan beban pembina.
Sebagai bahasa berstruktur, Golang tidak mempunyai kaedah pembinaan dalam bahasa berorientasikan objek, tetapi Golang boleh melaksanakan idea dan kaedah pengaturcaraan berorientasikan objek seperti warisan dan pembina seperti C++.
Oleh kerana struct
ialah jenis nilai, jika strukturnya kompleks, overhed prestasi 值拷贝
akan menjadi agak besar, jadi pembina mengembalikan jenis 结构体指针
.
Spesifikasi
Mulakan dengan kata kunci Baharu
Penunjuk struktur pulangan
Pelbagai cara untuk mencipta dan memulakan struktur - mensimulasikan beban berlebihan pembina
Jika anda menggunakan struktur untuk menerangkan ciri-ciri kucing, maka Terdapat boleh menjadi jenis kucing yang berbeza mengikut warna dan nama mereka Kemudian warna dan nama yang berbeza adalah medan struktur Pada masa yang sama, anda boleh menggunakan warna dan nama untuk membina contoh jenis kucing yang berbeza rujuk kod berikut:
type Cat struct { Color string Name string } func NewCatByName(name string) *Cat { return &Cat{ Name: name, } } func NewCatByColor(color string) *Cat { return &Cat{ Color: color, } }
Perihalan kod adalah seperti berikut:
Barisan 1 mentakrifkan struktur Kucing, termasuk medan warna dan nama.
Barisan 6 mentakrifkan fungsi yang membina struktur kucing daripada nama dan mengembalikan penunjuk Kucing.
Barisan 7 mengambil alamat dan menggambarkan struktur kucing.
Barisan 8 memulakan medan nama kucing, mengabaikan medan warna.
Baris 12 mentakrifkan fungsi yang membina struktur kucing dengan warna dan mengembalikan penunjuk Kucing.
Dalam contoh ini, jenis kedua-dua atribut, warna dan nama, adalah kedua-dua rentetan Memandangkan tiada fungsi lebihan dalam bahasa Go, untuk mengelakkan konflik nama fungsi, gunakan NewCatByName() dan NewCatByColor() Dua nama fungsi berbeza mewakili proses pembinaan Cat yang berbeza.
Pembinaan dan permulaan struktur dengan hubungan ibu bapa-anak - meniru panggilan pembinaan ibu bapa
Kucing hitam ialah sejenis kucing, kucing Ia adalah istilah umum untuk kucing hitam Apabila menerangkan kedua-dua konsep ini pada masa yang sama, ia berasal dari jenis kucing Apabila menggunakan struktur untuk menggambarkan hubungan antara kucing dan kucing hitam, struktur kucing adalah tertanam dalam kucing hitam. Dalam kucing (BlackCat), ini bermakna kucing hitam mempunyai ciri-ciri kucing, dan kemudian menggunakan dua pembina berbeza untuk membina dua contoh struktur kucing hitam dan kucing masing-masing Rujuk kod berikut:
type Cat struct { Color string Name string } type BlackCat struct { Cat // 嵌入Cat, 类似于派生 } // “构造基类” func NewCat(name string) *Cat { return &Cat{ Name: name, } } // “构造子类” func NewBlackCat(color string) *BlackCat { cat := &BlackCat{} cat.Color = color return cat }
Penerangan kod adalah seperti berikut:
Baris 6 mentakrifkan struktur BlackCat dan membenamkan struktur Cat memiliki semua ahli Cat dan boleh mengakses semua ahli Cat secara bebas selepas instantiasi.
Dalam baris 11, fungsi NewCat() mentakrifkan proses pembinaan Cat, menggunakan nama sebagai parameter untuk mengisi struktur Cat.
Baris 18, NewBlackCat() menggunakan warna sebagai parameter dan membina penunjuk BlackCat.
Barisan 19, nyatakan struktur BlackCat dan Cat juga dibuat seketika pada masa yang sama.
Baris 20, isikan atribut warna Cat yang dibenamkan dalam BlackCat BlackCat tidak mempunyai sebarang ahli dan semua ahli berasal dari Cat.
Dalam contoh ini, struktur Cat adalah serupa dengan "kelas asas" dalam berorientasikan objek, dan BlackCat dibenamkan dalam struktur Cat, yang serupa dengan "derivatif" dalam berorientasikan objek Apabila dijadikan instantiated, The Cat dalam BlackCat juga akan dijadikan instantiated.
Ringkasnya, bahasa Go tidak menyediakan mekanisme khas yang berkaitan dengan pembina Pengguna boleh menyelesaikan tugas pembina dengan menghantar parameter ke dalam parameter pembinaan struktur mengikut keperluan mereka sendiri.
[Cadangan berkaitan: Pergi tutorial video, Pengajaran pengaturcaraan]
Atas ialah kandungan terperinci Adakah bahasa go mempunyai pembina?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat 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



Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

Apa yang perlu saya lakukan jika label struktur tersuai di Goland tidak dipaparkan? Apabila menggunakan Goland untuk Pembangunan Bahasa GO, banyak pemaju akan menghadapi tag struktur tersuai ...

Perpustakaan mana yang dibangunkan oleh syarikat besar atau projek sumber terbuka yang terkenal? Semasa pengaturcaraan di GO, pemaju sering menghadapi beberapa keperluan biasa, ...

Dua cara untuk menentukan struktur dalam bahasa Go: perbezaan antara VAR dan jenis kata kunci. Apabila menentukan struktur, pergi bahasa sering melihat dua cara menulis yang berbeza: pertama ...

Cecair mengendalikan isu keselamatan bersamaan dalam penulisan log pelbagai proses. Proses berganda menulis fail log yang sama pada masa yang sama. Bagaimana untuk memastikan kesesuaian selamat dan cekap? Ini ...
