Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Merangkum Medan dan Kaedah Peribadi dalam Go Structs?

Bagaimana untuk Merangkum Medan dan Kaedah Peribadi dalam Go Structs?

Patricia Arquette
Patricia Arquetteasal
2024-12-06 22:29:10266semak imbas

How to Encapsulate Private Fields and Methods in Go Structs?

Merangkum Medan Peribadi dan Kaedah untuk Struktur dalam Go

Dalam Go, mencapai pengkapsulan sebenar untuk kedua-dua medan dan kaedah struct adalah masalah pemahaman peraturan skop dan keterlihatan berubah-ubah.

Mengikut konvensyen, pengecam bermula dengan huruf besar dieksport dan boleh diakses di luar pakej pengisytiharan. Sebaliknya, pengecam huruf kecil hanya boleh diakses dalam pakej itu sendiri.

Untuk menswastakan kedua-dua mytype struct dan kaedah doPrivatenya, langkah berikut perlu diambil:

  1. Pakej Asingkan : Buat pakej berasingan untuk struct mytype dan kaedah yang berkaitan. Ini memastikan bahawa hanya ahli jenis mytype mempunyai akses kepada medan dan kaedah peribadinya.
  2. Pengecam Huruf Kecil: Namakan semula kedua-dua struct mytype dan kaedah doPrivate untuk bermula dengan huruf kecil.

Kod yang terhasil:

// Package mypkg defines the private mytype struct and its methods.
package mypkg

type mytype struct {
    size          string
    hash          uint32
}

// doPrivate can only be accessed by members of mytype.
func (r *mytype) doPrivate() string {
    return r.size
}

Kini, hanya ahli struct mytype boleh mengakses medan dan kaedah peribadinya. Jenis atau fungsi luaran dalam pakej mypkg tidak boleh mengakses ahli peribadi ini secara langsung.

Atas ialah kandungan terperinci Bagaimana untuk Merangkum Medan dan Kaedah Peribadi dalam Go Structs?. 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