Rumah >pembangunan bahagian belakang >Golang >Apakah Kegunaan dan Sifat Struktur Kosong (`struct{}` dan `struct{}{}`) dalam Go?

Apakah Kegunaan dan Sifat Struktur Kosong (`struct{}` dan `struct{}{}`) dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-17 17:46:10132semak imbas

What are the Uses and Properties of Empty Structs (`struct{}` and `struct{}{}`) in Go?

Memahami Struktur Kosong dalam Go: struct{} dan struct{}{}

Dalam Go, kata kunci struct mentakrifkan data berstruktur jenis terdiri daripada unsur yang dinamakan. Walau bagaimanapun, struct{} dan struct{}{}, yang sering ditemui dalam kod Go idiomatik, patut diberi perhatian khusus.

struct{}: Struktur Kosong

Struktur {} ialah kes khas yang mewakili struct kosong tanpa unsur. Ia mempunyai sifat unik iaitu bersaiz sifar, bermakna tiada memori diperuntukkan kepada nilai jenis ini.

struktur{}{} sebagai Literal Komposit

Sebaliknya, struct{}{}, ditulis sama dengan int{5} atau []string{"Go", "Python"}, ialah literal komposit yang secara eksplisit membina nilai jenis struct{}. Literal ini tidak mempunyai medan kerana struct{} tidak mempunyai elemen yang ditentukan.

Aplikasi Struktur Kosong

Struktur kosong boleh menemui pelbagai kegunaan dalam kod Go:

  • Sebagai "tempat letak" dalam nilai peta: Apabila menggunakan peta untuk menyimpan set (koleksi unik elemen), menetapkan jenis nilai kepada struct{} memastikan bahawa hanya kekunci (elemen) disimpan, tanpa membuang ruang pada nilai yang berkaitan.
  • Sebagai medan dalam struct: Struct kosong boleh menyediakan padding tambahan dalam struct yang lebih besar, memastikan keperluan penjajaran tertentu untuk seni bina tertentu.

Contoh: Mencipta Set Menggunakan Kosong Struct

Berikut ialah contoh menggunakan peta dengan jenis nilai struct kosong untuk mencipta set:

package main

import "fmt"

type Set map[string]struct{}

func main() {
    s := make(Set)
    s["red"] = struct{}{}
    s["blue"] = struct{}{}

    fmt.Println(s)  // Prints: map[blue:{} red:{}]
}

Perhatikan bahawa pendekatan ini hanya menyemak kewujudan kunci, bukan nilai berkaitan mereka.

Atas ialah kandungan terperinci Apakah Kegunaan dan Sifat Struktur Kosong (`struct{}` dan `struct{}{}`) dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn