golang 初始化并赋值_Golang | 既是接口又是类型,interface是什么神仙用法?

337f99e3f8e408b8ea6b07ddcd641673.png

本文始发于个人公众号:TechFlow,原创不易,求个关注

今天是golang专题的第12篇文章,我们来继续聊聊interface的使用。

在上一篇文章当中我们介绍了面向对象的一些基本概念,以及golang当中interface和多态的实现方法。今天我们继续来介绍interface当中其他的一些方法。

万能类型interface

在Java以及其他语言当中接口是一种写法规范,而在golang当中,interface其实也是一种值,它可以像是值一样传递。并且在它的底层,它其实是一个值和类型的元组。

这里我们来看下golang官方文档当中的一个例子:

package main

import (
 "fmt"
 "math"
)

type I interface {
    
 M()
}

type T struct {
    
 S string
}

func (t *T) M() {
    
 fmt.Println(t.S)
}

type F float64

func (f F) M() {
    
 fmt.Println(f)
}

func main() {
    
 var i I

 i = &T{
    "Hello"}
 describe(i)
 i.M()

 i 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值