官术网_书友最值得收藏!

Struct

A struct in Go is a data structure that is composed of fields, where each field has a type. Here is what a Go struct looks like:

type myStruct struct{
intField int
stringField string
sliceField []int
}

The preceding code creates a struct type that is called myStruct, which contains three fields:

  • intField of type int
  • stringField of type string
  • sliceField of type []int

You can then initialize and use that struct type in your code:

var s = myStruct{
intField: 3,
stringField: "three",
sliceField : []int{1,2,3},
}

The preceding method of initialization is also known as struct literals. There is a shorter version of it that looks like this:

var s = myStruct{3,"three",[]int{1,2,3}}

You can also use what is known as dot notation, which looks as follows:

var s = myStruct{}
s.intField = 3
s.stringField = "three"
s.sliceField= []int{1,2,3}

You can obtain a pointer to a struct by doing this:

var sPtr = &myStruct{
intField:3,
stringField:"three",
sliceField: []int{1,2,3},
}

A dot notation can be used with a Go struct pointer, since Go will understand what needs to be done without the need to do any pointer de-referencing:

var s = &myStruct{}
s.intField = 3
s.stringField = "three"
s.sliceField= []int{1,2,3}

If the Go struct field names start with lower case letters, they will not be visible to external packages. If you want your struct or its fields to be visible to other packages, start the struct and/or field name with upper case letters.

Now, let's talk about Go methods.

主站蜘蛛池模板: 普兰县| 济源市| 灵山县| 安多县| 双辽市| 同心县| 喜德县| 孟州市| 达尔| 绿春县| 顺义区| 上饶县| 东乡县| 灵山县| 遂平县| 松滋市| 杭锦后旗| 济源市| 通城县| 罗定市| 五大连池市| 阿拉善盟| 洛扎县| 扬州市| 安龙县| 滨州市| 平安县| 招远市| 肥城市| 福鼎市| 星子县| 搜索| 五莲县| 曲松县| 罗定市| 郓城县| 祥云县| 东阿县| 新平| 额尔古纳市| 德昌县|