Menetapkan Penunjuk Boolean kepada True dalam Struct Literals
Soalan:
Sesuatu fungsi memerlukan penunjuk kepada nilai boolean. Bolehkah literal struct digunakan untuk menetapkan medan kepada benar tanpa memperkenalkan pembolehubah tambahan?
Jawapan:
Ya, mungkin, tetapi tidak ideal:
h := handler{is: &[]bool{true}[0]}
Penyelesaian ini mencipta kepingan dengan nilai boolean tunggal bernilai benar, mengindeks elemen pertamanya dan memberikan alamatnya kepada is padang. Walaupun pembolehubah baharu dielakkan, boilerplate dan ketekunan tatasusunan sandaran memberikan kelemahan.
Penyelesaian yang Lebih Baik:
func newTrue() *bool { b := true return &b }
h := handler{is: newTrue()}
h := handler{is: func() *bool { b := true; return &b }()}
h := handler{is: func(b bool) *bool { return &b }(true)}
Untuk lebih banyak pilihan, rujuk "Bagaimana cara saya melakukan *int64 literal dalam Go?".
Atas ialah kandungan terperinci Bolehkah Go Struct Literal Menetapkan Penunjuk Boolean Sebenar Tanpa Pembolehubah Tambahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!