一、函数格式
type mytype int //新类型
func (p mytype) funcname(q int) (r, s int) {return 0,0}
// func定义一个函数,(p mytype)把函数绑定到特定类型上,funcname 是函数名字,(q int)是参数,(r, s int)是返回类型
二、作用域
var a int
func main() {
a = 5
println(a)
f()
}
func f() {
a := 6
println(a)
g()
}
func g() {
println(a)
}
//结果:565
三、返回值
- Go 函数的返回值或者结果参数可以指定一个名字,并且像原始的变量那样使用,像输入参数那样。
四、方法
- 方法接收者是指针/普通类型的工作原理具体怎么理解?
package main
import "fmt"
//定义结构体
type Matrix struct{
len int //结构体内的变量声明不需要加 var
width int
}
//注意区分这两者的区别,对象不是指针的时候,对对象的成员的修改是无效的!
func (m Matrix) SetValue() {
m.len=99
m.width=888
}
func (m* Matrix) pSetValue(){
m.len=999
m.width=88
}
func main(){
var mat Matrix
mat.SetValue()
fmt.Println(mat.len,mat.width)
mat.pSetValue()
fmt.Println(mat.len,mat.width)
}