Bagaimana untuk Menetapkan Nilai Lalai untuk Medan struct di Golang?

Bagaimana Untuk Menetapkan Nilai Lalai Untuk Medan Struct Di Golang



Golang ialah bahasa pengaturcaraan moden yang semakin popular sejak beberapa tahun kebelakangan ini. Salah satu ciri hebat Golang ialah keupayaannya untuk mentakrif dan memanipulasi struct. Struktur ialah jenis data yang ditentukan pengguna yang membenarkan pembangun mengumpulkan bersama medan data yang berkaitan ke dalam satu objek. Dalam Go, struktur boleh dapat nilai lalai diperuntukkan kepada bidang mereka, yang menjadikan permulaannya lebih mudah.

Dalam esei ini, kita akan meneroka bagaimana untuk menetapkan a nilai asal untuk medan struct di Golang.

Apakah itu Struct Fields?

Pertama, adalah penting untuk memahami konsep medan struct . The medan struct adalah pembolehubah yang dikelompokkan untuk membentuk a struct objek. setiap satu medan struct mempunyai nama dan jenis data. Contohnya, struct yang mewakili seseorang mungkin mempunyai medan seperti nama, umur dan jantina.







Bagaimana untuk Menetapkan Nilai Lalai untuk Medan Struktur di Golang?

Nilai lalai boleh ditugaskan untuk medan struct dalam Go menggunakan:



  • Nilai Sifar Lalai
  • Pembina
  • Literal Struktur
  • Nilai Medan Lalai

1: Nilai Sifar Lalai

Dalam Go, memberikan nilai lalai kepada medan struct boleh dicapai dengan ' nilai sifar ” ciri. Ciri ini secara automatik memberikan nilai lalai sama ada ' 0 ” atau “ salah ” kepada setiap medan yang tidak dimulakan, bergantung pada jenis data. Ini bermakna anda tidak perlu menetapkan nilai lalai secara eksplisit untuk setiap medan dalam struct, kerana Go akan melakukannya untuk anda.



Ciri ini boleh berguna apabila berurusan dengan struktur besar dengan banyak medan, kerana ia menjimatkan masa dan usaha menetapkan nilai lalai secara manual untuk setiap medan.





Berikut ialah contoh yang menggunakan nilai sifar untuk menetapkan nilai lalai untuk medan struct:

pakej utama

import 'fmt'

menaip Struktur orang {
Namakan   rentetan
Umur    int
Ketinggian terapung64
IsMale bool
}

fungsi utama ( ) {
p1 := Orang { nama: 'John' , Umur: 30 }
fmt.Println ( p1.Nama )
fmt.Println ( p1.Umur )
fmt.Println ( p1.Ketinggian )
fmt.Println ( p1.IsLelaki )
}

Kod di atas mentakrifkan Orang struct dengan empat medan: Nama, Umur, Ketinggian dan IsMale, yang kesemuanya adalah daripada jenis data bool. Kemudian, kami membuat contoh baharu kelas Person, p1, dan memulakan beberapa medannya dengan menggunakan literal struct untuk menentukan nama dan nilai medan. The nilai sifar lalai untuk medan yang tidak ditetapkan secara eksplisit semasa permulaan dipaparkan apabila anda mencetak nilai medan menggunakan fmt.Println .



Pengeluaran

2: Pembina

Dengan menulis a pembina fungsi untuk struct, anda juga boleh memberikan nilai lalai kepada medan struct dalam Golang. The pembina fungsi mencipta contoh baru struct dan menetapkan nilai lalai untuk medannya. Kaedah ini menjimatkan usaha dan masa, terutamanya apabila berinteraksi dengan struktur besar dengan pelbagai medan.

Berikut adalah contoh bagaimana untuk mentakrifkan a pembina fungsi dengan nilai medan lalai untuk struct:

pakej utama

import 'fmt'

menaip Struktur orang {
Nama    rentetan
Umur     int
Rentetan alamat
}
fungsi NewPerson ( ) * Orang {
kembali & Orang {
nama: 'John Doe' ,
umur: 30 ,
Alamat: '123 Jalan Utama' ,
}
}
fungsi utama ( ) {
p : = Orang Baru ( )
fmt.Println ( p.Nama, hlm.Umur, hlm.Alamat )
}

Dalam kod di atas, a Orang struct ditakrifkan, serta newPerson() fungsi, yang menghasilkan contoh baharu bagi Orang struct dengan lalai yang telah ditetapkan. Kami panggil newPerson() dalam utama() untuk mencipta tika Orang baharu dengan nilai medan lalai , dan kami kemudian mencetak nilai medan kejadian itu.

Pengeluaran

3: Literal Struktur

Dalam Golang, anda boleh menetapkan nilai lalai untuk medan struct menggunakan tersurat struct juga. Hanya bina contoh baru struct dan tetapkan nilai untuk setiap medan yang perlu dimulakan. Jika anda ingin menetapkan nilai lalai untuk medan yang anda tidak mulakan secara eksplisit, anda boleh menggunakan ciri nilai sifar.

Berikut adalah contoh cara menggunakan tersurat struct untuk menetapkan nilai medan lalai untuk struct:

pakej utama

import 'fmt'

menaip Struktur orang {
Nama    rentetan
Umur     int
Rentetan alamat
}
fungsi utama ( ) {
p : = Orang {
nama: 'John Doe' ,
umur: 30 ,
}
fmt.Println ( p.Nama, hlm.Umur, hlm.Alamat )
}

Dalam kod di atas, kami mentakrifkan a Orang struct dalam contoh ini dan buat contoh baharu menggunakan nilai literal dan lalai struct untuk medannya. yang baru Orang instance dicipta dalam main() dengan beberapa nilai medan diisi dan yang lain dibiarkan kosong. Sejak Alamat medan tidak dimulakan, ia menerima rentetan kosong yang merupakan nilai lalai untuk medan ini. Akhir sekali, kami mencetak nilai medan contoh Orang.

Pengeluaran

4: Nilai Medan Lalai

Menugaskan nilai lalai kepada medan struct dalam Go ialah proses yang mudah. The nilai asal untuk medan struct boleh ditetapkan menggunakan sintaks fieldName:defaultValue . Sebagai contoh, pertimbangkan definisi struktur berikut:

menaip Struktur orang {
Rentetan nama
Umur int
Rentetan jantina
}

Untuk menetapkan nilai lalai ke medan struct ini, kita boleh menggunakan sintaks berikut:

p : = Orang {
nama: 'John Doe' ,
umur: 30 ,
Jantina: 'Lelaki' ,
}

Dalam contoh di atas, kami telah menetapkan nilai lalai ke medan struct Person. Jika kita meninggalkan mana-mana nilai semasa permulaan, nilai nilai asal akan digunakan sebaliknya. Sebagai contoh, jika kita memulakan objek Orang seperti ini:

p : = Orang {
nama: 'Jane Doe' ,
}

Objek Orang yang terhasil akan mempunyai nilai lalai untuk medan Umur dan Jantina, iaitu 0 dan rentetan kosong, masing-masing.

Berikut ialah kod lengkap yang menggambarkan proses di atas:

pakej utama
import 'fmt'

menaip Struktur orang {
Namakan   rentetan
Umur    int
Rentetan jantina
}
fungsi utama ( ) {
p1 := Orang {
nama: 'John Doe' ,
umur: 30 ,
Jantina: 'Lelaki' ,
}
fmt.Println ( p1 )

p2 := Orang {
nama: 'Jeremy' ,
}
fmt.Println ( p2 )
}

Dalam contoh di atas, kami membina struct Orang yang mempunyai tiga medan: Nama, int yang mewakili umur dan Jantina, rentetan yang mewakili jantina. Sintaks permulaan struct kemudiannya digunakan untuk membina dua contoh Orang, p1 dan p2. p1 dimulakan dengan nilai 'John Doe' untuk Nama, '30' untuk Umur dan 'Lelaki' untuk Jantina, yang kesemuanya merupakan nilai yang telah diberikan secara nyata. Oleh kerana kami tidak memberikan nilai untuk Umur dan Jantina, nilai lalai 0 dan rentetan kosong, masing-masing, akan diberikan kepada mereka. p2 pada mulanya dimulakan dengan hanya medan Nama yang disediakan.

Pengeluaran

Kesimpulan

Menugaskan nilai lalai dalam Go ialah aspek penting pengaturcaraan dengan bahasa ini. Ia membantu untuk memastikan bahawa setiap contoh struct yang dibuat mempunyai data lalai yang diberikan kepadanya. Dengan menggunakan mana-mana kaedah yang dijelaskan di atas, pembangun boleh menetapkan nilai lalai medan struct dengan cekap.