go语言笔记

96 阅读1分钟

\n\n结构体与接口\n结构体(Struct)\nstruct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套其他结构体,也可以定义方法。\n\n封装性:字段首字母大写包外可访问、小写包外不可访问\n\n继承:用聚合实现继承(把父类放到子类里)\n\ntag:定义特定格式中的形式或约束条件,书写: \n\n结构体的方法:收参是A结构体就是A结构体的方法。\n\n结构体的初始化:\n\n直接初始化:person := Person{}\n\n使用new:返回的是指针\n\n类似数组,也有值传递和引用传递的区别,不传指针就没法改\n\n注意,指针和非指针对字段的访问都是用.:person.Age =\n\n接口(Interface)\n接口描述了某个类型有哪些方法,或者说一个接口类型,定义了一个方法集。\n\n通过接口可以实现多:\n\ntype Animal interface {\n \n    Shout()\n \n}\n \n \n \ntype Dog struct{}\n \ntype Cat struct{}\n \n \n \nfunc (d Dog) Shout(){\n \n    fmt.PrintIn("汪汪")\n \n}\n \n \n \nfunc (c Cat) Shout(){\n \n    fmt.PrintIn("喵")\n \n}\n空接口可以被认为是很多其他语言中的any类型;空接口中没有任何方法,所以任何类型都实现了空接口==》\n\n为什么PrintIn什么都能打印?