求分析一小段代码,关于interface的

Yannick · 2017-11-22 14:04:20 · 1020 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-11-22 14:04:20 的主题,其中的信息可能已经有所发展或是发生改变。

type ServiceTypeEnum uint32

type avpUint32Enum struct {
    t interface{} 
}

type attributeTypeDesc struct {
    name     string
    dataType avpDataType
}

type avpDataType interface {
    Value(p *Packet, a AVP) interface{}
    String(p *Packet, a AVP) string
}

attributeTypeMap = [1]attributeTypeDesc{
0:            {"ServiceType", avpUint32Enum{ServiceTypeEnum(0)}},
}
本人新手,这是在学习别人代码的时候遇到的,数组第一个元素是一个attributeTypeDesc 结构体,name为ServiceType,

dataType 为 avpUint32Enum{ServiceTypeEnum(0)}。这里avpUint32Enum肯定实现了avpDataType 接口,实现的代码就不贴出来了。

ServiceTypeEnum是底层uint32类型,这里应该需要一个t interface{}空接口,表示接受任何变量。我的问题是:那么ServiceTypeEnum(0)这种用法是什么意思?

或者换句话问:go中 int32(0) 是一种什么 用法?


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1020 次点击  
加入收藏 微博
2 回复  |  直到 2017-11-23 06:07:31
wi-cuckoo
wi-cuckoo · #1 · 7年之前

难道这不是一个类型转换

momaek
momaek · #2 · 7年之前

强制类型转换

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传