学习golang之路(四)方法基础

57 阅读1分钟

package main

import "fmt"

//结构体的字段表示其属性,方法表示他的行为,比如跑步,唱歌 //方法是指定在他的数据类型上,不仅仅是struct /* type A struct { Age int }

func (b A) test() {//表示和A类型绑定的方法是test fmt.Println(b.Age) } */ type Person struct { Name string Age int }

//p这个名字由程序指定 不是固定的 可以修改为person func (p Person) test() { fmt.Println("name为 age为", p.Name, p.Age) }

//传参 func (p Person) getsum(n1 int, n2 int) int { return n1 + n2 } //如果这样写,为什么res没有结果呢 ,因为只是返回值并没有打印出屏幕上 /* func (p Person) jisuan(n int) int{ res := 0 for i := 0; i < n; i++ { res += i } return res

} */ func (p Person) jisuan(n int) int { res := 0 for i := 0; i < n; i++ { res += i } return res

} func main() { var p1 Person //声明p1的数据类型为Person结构体 p1.Name = "ton" p1.Age = 20 p1.test() //调用方法 fmt.Println(p1.getsum(10, 20)) fmt.Println(p1.jisuan(10))//修改成这样 就可以了 }