
golang 第四课 结构体(struct)、interface{}、方法(func)详解
发布日期:2021-05-14 20:12:10
浏览次数:12
分类:精选文章
本文共 2577 字,大约阅读时间需要 8 分钟。
���������������������
���������func���
��� Go ������������������������������������������������������������������������������������������������������������������������
- ������������������������def func fn() {// ���������������// func funcName(arg type ...) ([arg] type ...) { // ���������������������������������������// }}
- ������������������������def func fn1(arg1 int, arg2 int) (a int) {a := arg1 + arg2return}
- ���������������������def func fn2(args ...int) {fmt.Printf("%T, %v\n", args, args)a := 0for _, k := range args {a += k}fmt.Println("a val:", a)}
���������interface���
��������� Go ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
- ������������type It1 interface {Add(int) intSub(int) int}
- ���������������������type Num intfunc (num Num) Add(n int) int {a := int(num)a += nnum = Num(a)return a}func (num Num) Sub(n int) int {a := int(num)a -= nnum = Num(a)return a}
- ���������������func Ad(num It1, n int) int {return num.Add(n)}func main() {a := 10num := Num(a)b := Ad(num, 10)fmt.Println("b:", b)fmt.Println("a:", a)fmt.Println("num:", num)}
���������������������������
���������������������������������������������������������������������
- ������������������type It1 interface {Add(int) intSub(int) int}type Num intfunc (num *Num) Add(n int) int {a := int(*num)a += n*num = Num(a)fmt.Println("ADD:", *num)return a}func (num *Num) Sub(n int) int {a := int(*num)a -= n*num = Num(a)return a}
- ������������func main() {a := 10num := Num(a)fmt.Println("M ADDR : ", &num)b := Ad(&num, 10)fmt.Println("b:", b)fmt.Println("a:", a)fmt.Println("num:", num)}
������������struct���
��� Go ���������������������������������������������������������
- ���������������type Person struct {Name stringAge uint8Money int}
- ������������func (person *Person) GetName() string {return person.Name}func (person *Person) AddIncome(money int) int {person.Money += moneyreturn person.Money}
- ������������������func Str() {student1 := Person{Name: "zzh",Age: 18}fmt.Printf("stu1:%+v\n", student1)var student2 Personstudent2.Name = "zzh2"student2.Age = 19fmt.Printf("stu2:%+v\n", student2)AddUserMoney(&student1, 10)AddUserMoney(&student2, 20)fmt.Printf("stu1:%+v\n", student1)fmt.Printf("stu2:%+v\n", student2)}
- ������������type Human interface {GetName() stringAddIncome(int) int}func AddUserMoney(user Human, money int) int {return user.AddIncome(money)}
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月13日 22时49分20秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Gradle实战四:Jenkins持续集成
2021-05-14
OkHttp3源码解析--设计模式
2021-05-14
使用RestTemplate,显示请求信息,响应信息
2021-05-14
wgcloud运维监控系统错误:防篡改校验错误次数大于10次,不再上报数据
2021-05-14
为什么WGCLOUD安装完后,启动服务端打不开网页
2021-05-14
wgcloud网络监控出现负值
2021-05-14
performSelector系列方法的研究
2021-05-14
Xcode使用
2021-05-14
ios 官方sample
2021-05-14
iOS 开发官方文档链接收集
2021-05-14
网易云面试(Android岗)之旅,差点被这些基础题绊了跟头。
2021-05-14
面试官:“看你简历上写熟悉 Handler 机制,那聊聊 IdleHandler 吧?”
2021-05-14
Android音视频开发之——音频非压缩编码和压缩编码
2021-05-14
linux学习笔记(四)基本用户管理与帮助命令
2021-05-14
小程序:防止父方法被子方法冒泡,使用catchtap
2021-05-14
'ls' 不是内部或外部命令
2021-05-14
vue报错 created hook错误
2021-05-14
JS 瀑布流效果
2021-05-14
单选框点击文字也能选中
2021-05-14
此主机支持Intel VT-x,但Intel VT-x 处于禁用状态。
2021-05-14