Go入门-方法

1.方法的命名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package main

import "fmt"

type node struct {
x,y int
}

func main() {
n11 :=node{1,2}
n22 := node{3,4}
fmt.Println(n11.add(n22))
}
func (n node) add(n1 node) node {
return node{n.x+n1.x,n.y+n1.y}
}

输出:
{4 6}
上面代码上将通过add方法将两个node类型的结构体相加,add是方法
func (n node) add(n1 node) node {
return node{n.x+n1.x,n.y+n1.y}
}
方法的声明和函数类似,只是多了一个接收者,参数n就是方法add的接收者,方法与node类型的结构体进行绑定
同名的函数和方法命名不会冲突
2.方法变量和表达式
a := n11.add //方法变量
fmt.Println(a(n22))
b:=node.add //表达式
fmt.Println(b(n11,n22))
输出:
{4 6}
{4 6}
方法变量和表达式可以看作是换一种方式执行了方法
3.封装
如果变量或方法是不能通过对象访问到的,就称作封装的变量或方法
要封装一个对象,必须使用结构体,Go是通过大小写来区分包外是否可以引用,大写的包外的可以引用,小写的只能在包中使用
也就是说,封装的单元是包

1
2
3
4
type ABC struct {
a int
s string
}

ABC结构体内有两个包内的变量

坚持原创技术分享,您的支持将鼓励我继续创作!