美文网首页
如何在 golang 中以字节为单位获取结构的大小及其内容?

如何在 golang 中以字节为单位获取结构的大小及其内容?

作者: robertzhai | 来源:发表于2023-08-12 12:23 被阅读0次

unsafe.Sizeof 加和

package main

import (
    "fmt"
    "unsafe"
)

type ASDF struct {
    A uint64
    B uint64
    C uint64
    D uint64
    E uint64
    F string
}

func (s *ASDF) size() int {
    size := int(unsafe.Sizeof(*s))
    size += len(s.F)
    return size
}

func sizeASDF(s []ASDF) int {
    size := 0
    s = s[:cap(s)]
    size += cap(s) * int(unsafe.Sizeof(s))
    for i := range s {
        size += (&s[i]).size()
    }
    return size
}

func main() {
    a := []ASDF{}

    b := ASDF{}
    b.A = 1
    b.B = 2
    b.C = 3
    b.D = 4
    b.E = 5
    b.F = "ASrtertetetetetetetDF"
    fmt.Println((&b).size())
    a = append(a, b)

    c := ASDF{}
    c.A = 10
    c.B = 20
    c.C = 30
    c.D = 40
    c.E = 50
    c.F = "ASetDF"
 

相关文章

  • btcd是如何计算字节占用的

    下面以交易的字节占用为例,解析btcd是如何处理golang的字节占用问题的。 交易结构 一个交易的大小分成了隔离...

  • 深挖iOS底层(3)

    深挖iOS底层(3) Sizeof() 定义:打印当前数据类型的占用大小,单位为字节sizeof(结构体):结构体...

  • js 字节单位转换,根据不同大小显示合适单位

    需求内容: 对后台返回的字节大小进行处理,根据字节大小显示合适的单位名称 实现内容:

  • python 统计当前文件夹的大小

    使用 os.path.getsize() 返回文件大小,以字节为单位 测试结果

  • TCP-滑动窗口原理

    1 TCP可靠传输的实现 1.1 以字节为单位的滑动窗口 TCP滑动窗口以字节为单位。如下图: 在网络传输中...

  • Js字节单位换算函数

    字节转换为单位大小 单位大小转换为字节

  • Java扫描器Scanner

    InputStream输入流以字节为单位来获取数据,而且需要复杂的判断并创建字节数组作为缓冲,最主要的是字节转换为...

  • 大小端

    大小端是指大于一个字节的变量在内存中的存储顺序,在内存中,通常来说,是以字节为单位存储数据的,以c++为例,一个c...

  • 关于IO流操作的几种方式

    字节流和字符流的区别:读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能...

  • Network面板-谷歌

    1: larger-than。显示大于指定大小的资源(以字节为单位)。 将值设为 1000 等同于设置为 1k。 ...

网友评论

      本文标题:如何在 golang 中以字节为单位获取结构的大小及其内容?

      本文链接:https://www.haomeiwen.com/subject/rymujdtx.html