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

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.

主站蜘蛛池模板: 剑河县| 德令哈市| 嘉黎县| 邯郸市| 松阳县| 五莲县| 崇明县| 营山县| 罗山县| 阳东县| 辉南县| 和静县| 株洲市| 永安市| 东乡| 桑植县| 山阴县| 鸡泽县| 平江县| 阿勒泰市| 民权县| 峨边| 连城县| 陆河县| 伊吾县| 平潭县| 剑河县| 普格县| 门头沟区| 克山县| 长兴县| 汕尾市| 隆尧县| 通化县| 西青区| 城市| 武强县| 昌江| 通渭县| 泸州市| 河源市|