社区
其他技术讨论专区
帖子详情
把结构pointer转成interface{}后怎么转回来
weixin_38066495
2019-09-20 10:45:30
```
package main
import (
"fmt"
)
type dog struct {
Name string
}
func recv(intf interface{}) {
//how to get the &d value ?
}
func main() {
var d = dog{ Name: "Bolter"}
fmt.Printf("intf: %p\n", &d)
recv(&d)
}
```
...全文
77
6
打赏
收藏
把结构pointer转成interface{}后怎么转回来
``` package main import ( "fmt" ) type dog struct { Name string } func recv(intf interface{}) { //how to get the &d value ? } func main() { var d = dog{ Name: "Bolter"} fmt.Printf("intf: %p\n", &d) recv(&d) } ```
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38090265
2019-09-20
打赏
举报
回复
可以用 func recv(intf interface{}) { //how to get the &d value ? dog := intf.(*dog) } 来获取,心诚则灵
weixin_38114312
2019-09-20
打赏
举报
回复
已经搞定了, 实际上recv是一个跟具体类型脱离的函数,不能引入具体的类型,比如dog, 因为还有可能是cat 有简单函数就能搞定: v:= reflect.ValueOf(intf).Pointer() //这个就是对象的指针 另外直接改成unsafe.Pointer也能搞定
???1111
2019-09-20
打赏
举报
回复
你这里很奇怪, 我一直都是这么使用的毫无问题, 你不就是要转成*dog, 然后操作dog的东西么。 为啥要牵扯到指针呢? 如果类型不明就算拿到了pointer指针你接下来怎么玩呢? 转化不了具体数据类型的指针就是一个数字而已。 你如果说这里可能是dog, 也可能是cat是要实现动态判断吗? 你可以用swith type这种经典的用法 switch intf.(type) { case *Dog: dog := intf.(*Dog) case *Cat: cat:= intf.(*Cat) default: doSomeDefaultThing() } 楼主是C或者C++转过来的吗?思路有点奇特。
weixin_38119848
2019-09-20
打赏
举报
回复
我没说你的写法有问题,转成具体类型是基本用法, 这个用不着问啊 recv和具体类型脱离, 进队列啊, 去重啊等等都不一定要转出来的
weixin_38069520
2019-09-20
打赏
举报
回复
断言
weixin_38082570
2019-09-20
打赏
举报
回复
intf.(dog) ?
[Go] 利用类型断言把
int
er
face
{}的
转
换回原类型
当传参数的时候 ,为了方便 ,参数的类型定义成了
int
er
face
{} , 如果要给这个原类型的属性赋值 , 就需要强
转
回去 例如下面的代码: func Rend
er
List(w http.ResponseWrit
er
, rend
er
int
er
face
{}) { head
er
:= ...
面试官:说说unsafe.
Point
er
和uintptr的区别和联系
= uintptr 我已经提到过,指针可以
转
换为 uintptr 并
转
回来
,但是
转
回来
是有一些特殊的条件限制的。unsafe.
Point
er
是一个真正的指针,它不仅保持内存地址,包括动态链接的地址,但 uintptr 只是一个数字,因此它更...
golang判空的几种方法
go 用 一个 eface的
结构
体表示
int
er
face
{} 类型, eface 有两个字段,一个是type表示类型,一个是 unsafe.
Point
er
用来表示指针指向的地址, 可以用 unsafe.
Point
er
的方式
转
回来
,然后单独判断
int
er
face
{} 值指向...
delphi 接口
Int
er
face
用接口的概念去理解和构造跨进程或分布式的软件
结构
,比起早期直接使用的远过程调用(RPC)等低级概念 更直观和简单。因为可以象理解一个对象一样理解一个接口,而不再关心这个对象是本地的或远程的。 在...
XHCI:eXtensible Host Controll
er
Int
er
face
(未完成)
本文参考了以及 《USB: The Univ
er
sal S
er
ies Bus》。代码存储于中的需要先简单了解 PCIe 的数据
结构
和枚举、检测 UEFI 提供的 PCIe 信息的方法。
其他技术讨论专区
473
社区成员
791,201
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章