285 字
1 分钟
Go初探 (5) – 结构体与接口
结构体
Go的结构体与C/C++类似,声明方式如下
type 结构体名 struct { 成员声明...}声明时如下
type Student struct{ id string name string}
func main(){ //创建一个结构体 student1 := Student{"123456", "张三"}
//可以使用key-value的形式创建 student2 := Student{id: "123456", name: "张三"}
//忽略的字段为0或空 student3 := Student{name: "张三"}}要访问结构体的数据成员,可直接通过点访问:
student1.id结构体也可以作为参数传递
func method(student Stdent){ //方法体}也可以用指针指向结构体
type pointer *Student使用如下
pointer = &student1pointer.id接口
与Java的接口一样,Go可以将不同类型中相同的方法提取出来,作为接口。任何其它类型实现了接口里的方法就是实现了这个接口。 接口的定义如下
type 接口名 interface{ 方法名() [返回类型] ...}接口的实现示例如下
package main
import "fmt"
type Dog interface{ bark()}
type BigDog struct{
}
type SmallDog struct{
}
func (bigDog BigDog) bark() { fmt.Println("BigDog is barking.")}
func (smallDog SmallDog) bark() { fmt.Println("SmallDog is barking.")}
func main(){ var dog Dog dog = new(BigDog) dog.bark()
dog = new(SmallDog) dog.bark()} Go初探 (5) – 结构体与接口
https://blog.nowcent.cn/posts/go/go初探5-结构体与接口/