type MyStruct struct {
Name string
}
x := Mystruct{}
y := &Mystrct{}
- 函数与方法的区别:
函数是一种独立的程序代码块
方法是在函数的基础上限定了可被调用的结构体
func add(x int, y int) int {
return x + y
}
type person struct {
name string
age int
}
func (p person) PrintName1() {
fmt.Println(p.name)
}
func (p *person) PrintName2() {
fmt.Println(p.name)
}
package main
import "fmt"
type MyStruct struct {
Name string
}
func (s MyStruct) SetName1() {
fmt.Println(s.Name)
s.Name = "sss"
fmt.Println(s.Name)
}
func (s *MyStruct) SetName2() {
fmt.Println(s.Name)
s.Name = "ddd"
fmt.Println(s.Name)
}
func f1(req string) {
req = "1111"
}
func f2(req *string) {
*req = "2222"
}
func (s MyStruct) SetName3() {
s.Name = "sss"
}
func (s *MyStruct) SetName4() {
s.Name = "ddd"
}
func main() {
m := MyStruct{Name: "xiaohaizi"}
m.SetName1()
m.SetName2()
REQ := "000"
f1(REQ)
fmt.Println("f1", REQ)
f2(&REQ)
fmt.Println("f2", REQ)
n := MyStruct{Name: "66666666666"}
n.SetName3()
fmt.Println("SetName3", n.Name)
n.SetName4()
fmt.Println("SetName4", n.Name)
}