八结构体和接口
Posted 勿忘初心0924
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了八结构体和接口相关的知识,希望对你有一定的参考价值。
结构体定义:
和C++ 一样,Golang的结构体也是封装数据。可以说是面向对象吧。
结构体的组合函数:
package main import ( "fmt" ) type Node struct { x, y int } // 结构体外接函数(能不能在结构体内写,目前还不清楚能不能在内部定义 func (node Node) area() (res int) { res = 0 res = node.x * node.y return } func main() { var node = Node{1, 2} fmt.Println(node.area()) }
结构体可以内嵌结构体类型的数据
接口:
和C++ 的虚函数类似(实现机制目前还不清楚)
package main import ( "fmt" ) // 定义接口 type Phone interface { // 定义方法 call() } type Iphone struct { } type Nokiaphone struct { } func (nokiaphone Nokiaphone) call() { fmt.Println("this is Nokiaphone") } func (iphone Iphone) call() { fmt.Println("this is Iphone") } func main() { var phone Phone phone = new(Iphone) phone.call() phone = new(Nokiaphone) phone.call() }
以上是关于八结构体和接口的主要内容,如果未能解决你的问题,请参考以下文章
Golang basic_leaming结构体和 Json 相互转换序列化反序列化