登录
首页 >  Golang >  Go问答

优化Go语言界面

来源:stackoverflow

时间:2024-03-12 10:21:24 301浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《优化Go语言界面》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

参考 russ cox 2009 年 12 月的文章 go 数据结构:接口

在内存优化部分,russ 建议,如果存储在 interface{} 中的数据小于 uintptr 的大小,则该值将直接存储在接口中,并且不分配数据,然后需要获取它的地址。

如果我使用以下代码进行测试:-

package main

import (
    "fmt"
    "unsafe"
)

type iface struct {
    _    unsafe.pointer
    data unsafe.pointer
}

func main() {
    var i interface{} = 12
    var pi = (*iface)(unsafe.pointer(&i))
    fmt.printf("if.data: %p", pi.data)
}

结果是:-

if.data: 0x127e2c

显然是一个地址,而不是执行优化后预期的值 12。

go 不再支持界面优化还是我遗漏了什么?


解决方案


Go 不再对 Go1.4+ 执行该优化。

以上就是《优化Go语言界面》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>