函数

函数和方法,虽然概念不同,但是定义非常相似。函数的定义声明没有接收者,所以我们直接在go文件里,go包之下定义声明即可。

  1. func main() {
  2. sum := add(3, 4)
  3. fmt.Println(sum)
  4. }
  5. func add(m, n int) int {
  6. return m+ n
  7. }

在上面我们定义了add就是一个函数,它的函数签名是func add(m, n int) int,没有接收者,直接定义在go的一个包之下,可以直接调用,比如例子中的main函数调用了add函数。 例子中的这个函数名称是小写开头的add,所以它的作用域只属于所声明的包内使用,不能被其他包使用,如果我们把函数名以大写字母开头,该函数的作用域就大了,可以被其他包调用。 这也是Go语言中大小写的用处,比如Java中,就有专门的关键字来声明作用域private、protect、public等。

  1. func Add(a,b int) int {
  2. return a + b
  3. }

这个新定义的Add方法就是可以被其他包调用的.