??斗地主捕鱼电竞提现秒到 广告位招租 - 15元/月全站展示
??支付宝搜索579087183领大额红包 ??伍彩集团官网直营彩票
??好待遇→招代理 ??伍彩集团官网直营彩票
??络茄网 广告位招租 - 15元/月全站展示
go语言中interface的实践

转载   PowerMichael   2018-11-07   浏览量:15


package main

import (
    "fmt"
    "math"
)

type geometry interface {
    area() float64
    perim() float64
}

type square struct {
    width, height float64
}

type circle struct {
    radius float64
}

//要在go中实现一个接口,我们只需要实现接口中的所有方法

//`square`的实现,s接收者接受了area()方法
func (s square) area() float64 {
    return s.width * s.height

}

//`square`的实现,s接收者接受了perim()方法
func (s square) perim() float64 {
    return 2*s.width + 2*s.height

}

//`circle`的实现,c接收者接受了area()方法
func (c circle) area() float64 {
    return math.Pi * c.radius * c.radius

}

//`circle`的实现,c接收者接受了perim()方法
func (c circle) perim() float64 {
    return 2 * math.Pi * c.radius

}

//如果一个变量或者参数是接口类型,那么我们可以调用这个被命名的接口中的方法
func measure(g geometry)  {
    fmt.Println(g)
    fmt.Println(g.area())
    fmt.Println(g.perim())

}

func main()  {

    //定义并初始化square、circle struct,可以理解为结构体的实例?结构体的接收者?
    s := square{width: 3, height: 4}
    c := circle{radius: 5}

    measure(s)
    measure(c)
}

//output:
{3 4}
12
14
{5}
78.53981633974483
31.41592653589793

转载自://blog.51cto.com/huwho/2314041

招聘 不方便扫码就复制添加关注:程序员招聘谷,微信号:jobs1024



使用Go来模拟Java中的接口 实现类
针对项目中,相同的流程业务进行重构,使用Go来简单模拟Java中的接口,实现类的方式进行重构。分享一简单例子:packagemain//模拟java中的接口,实现类import"fmt"//声明一个接口,typeworkthreadinterface{do(namestring)}//传入的wt的子类不同,do方法执行的逻辑也不同funcHandle(wtworkthread,namestring
md5加密算法原理及其GO语言实现
md5加密算法原理及其GO语言实现MD5讯息摘要演算法(英语:MD5Message-DigestAlgorithm),一种被广泛使用的密码杂凑函数,可以产生出一个128位元(16位元组)的散列值(hashvalue),用于确保信息传输完整一致。go调用md5方法新建md5.go文件,代码如下:packagemainimport("fmt"...
Go语言中时间函数及定时器的使用
Go语言中时间函数的使用,定时器的实现
各种加密算法在Go语言中的使用
实际编程过程经?;嵊龅绞褂酶髦旨用芩惴?,本文以代码详细介绍了在Go语言中如何使用MD5、SHA256、RIPEMD160、DES、3DES、AES进行加密
Go语言之如何给*int32类型赋值
直接上代码:packagemainimport"fmt"funcmain(){varnum*int32variint32=5//针对*int32的,先创建一个i类型,然后取i的地址,赋值给*int32num=&ifmt.Println("=====>:\t",num)fmt.Println("=====>:\t",*num)}运行结果:=====>:0xc04206408
go语言学习之路(二)——go语言进行微信公众号开发
学习教程地址://www.imooc.com/topic/golang?mc_marking=ed9ea9bd605fe0066c71d80cc8603806&mc_channel=bdgoyyzt&audience=230227github地址:https://github.com/leeeboo/leeeboo.github.com微信公众号开发文档:https://...
GOLANG宽泛接口在测试中的大用处
GOLANG宽泛接口在测试中的大用处。
GOLANG简单类型定义,在协议解析的妙用
GOLANG简单类型定义,在协议解析的妙用。
Go语言之读取yaml配置文件,转换成struct结构,json形式输出
1、例子11.1、yaml文件内容如下:host:localhost:3306user:rootpwd:123456dbname:test1.2、代码如下://将yaml文件,转换成对象,再转换成json格式输出packagemainimport("encoding/json""fmt""gopkg.in/yaml.v2""io/ioutil")//定义conf类型//类型里的属性,全是配置文件里
Go语言之正则表达式
[TOC]Go语言正则表达式方式一:使用Compilepackagemainimport("fmt""regexp")consttext="[email protected]"funcmain(){//re是正则表达式的匹配器re,err:=regexp.Compile("[email protected]")iferr!=nil{panic(err)}r