Rumah >pembangunan bahagian belakang >Golang >Adakah Go struct medan tanpa nama awam atau peribadi?

Adakah Go struct medan tanpa nama awam atau peribadi?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBke hadapan
2024-02-05 23:30:12964semak imbas

Go 结构匿名字段是公共的还是私有的?

Isi soalan

Seperti yang kita sedia maklum, medan bermula dengan huruf besar adalah medan awam, dan medan bermula dengan bukan huruf besar adalah medan persendirian. Tetapi golang juga menyokong medan tanpa nama. Contohnya:

type myType struct {
  string
}

Medan ini direka bentuk untuk dibenamkan. Tetapi adakah bidang ini awam atau swasta?


Jawapan betul


Jika nama jenis jenis terbenam ialah huruf kecil, ia mempunyai keterlihatan pakej. Contohnya:

type t struct {
    string
}

func main() {
    x := t{}
    x.string = "a"
    fmt.println(x)
}

Namun, jika anda menaip t 移动到另一个包 p:

package p

type t struct {
  string
}
package main

import "testmod/p"

func main() {
    x := p.T{}
    x.string = "a" // Error
}

Atas ialah kandungan terperinci Adakah Go struct medan tanpa nama awam atau peribadi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam