下面是一文带你掌握 Golang 结构体与方法的完整攻略。
结构体定义
在 Golang 中,结构体是一种自定义类型,用于封装一组不同类型的数据,可以通过以下语法来定义结构体:
type StructName struct {
Field1 TypeName1
Field2 TypeName2
...
FieldN TypeNameN
}
其中 StructName
为结构体的名字,Field
为结构体的成员字段,TypeName
为其对应类型的名称。例如:
type Person struct {
name string
age int
}
表示定义了一个名为 Person
的结构体,包含 name
和 age
两个字段,分别为字符串类型和整型。
结构体方法
结构体方法是一种特殊的函数,与结构体类型相关联。它们可以被视为属于该类型的函数,在 Golang 中被称为方法。结构体方法可以用于访问和操作结构体中的成员变量。
定义结构体方法的语法如下:
func (s StructType) methodName(parameter_list) (return_value_list) {
...
}
其中 s
表示被定义方法的结构体的实例,StructType
表示该结构体的类型。例如:
type IntSlice []int
func (s IntSlice) Sum() int {
sum := 0
for _, v := range s {
sum += v
}
return sum
}
表示定义了一个名为 Sum
,返回值为 int
的方法,属于 IntSlice
类型的的结构体。
示例
以下是两个实际的示例:
- 定义一个名为
Rectangle
的结构体,包含width
和height
两个字段,分别表示矩形的宽度和高度,再定义一个名为Area
的方法,计算矩形的面积。
type Rectangle struct {
width float64
height float64
}
func (r Rectangle) Area() float64 {
return r.width * r.height
}
- 定义一个名为
Point
的结构体,包含x
和y
两个字段,分别表示点的横坐标和纵坐标,再定义一个名为Distance
的方法,计算两个点之间的距离。
type Point struct {
x float64
y float64
}
func (p Point) Distance(q Point) float64 {
return math.Sqrt(math.Pow(q.x-p.x, 2) + math.Pow(q.y-p.y, 2))
}
以上就是 Golang 结构体与方法的完整攻略。通过定义结构体和结构体方法,我们可以更好地封装和组织程序中的数据和方法,让程序更加清晰和易于维护。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文带你掌握掌握 Golang结构体与方法 - Python技术站