Golang: unsafe包的使用

1. golang各类型占空间字节数

package main

import (
	"fmt"
	"unsafe"
)

var tByte byte
var tRune rune
var tInt32 int32
var tInt int
var tInt64 int64
var tFloat32 float32
var tFloat64 float64
var tComplex64 complex64
var tComplex128 complex128
var tEmptyStruct struct{
   }
var tStruct struct{
    string }
var tStructInt struct{
    int }
var tString string
var tByteSlice []byte
var tStringSlice []string
var tIntMap map[int]struct{
   }
var tStringMap map[string]struct{
   }
var tIntChan chan int
var tStringChan chan string
var tIntPointer *int
var tStringPointer *string
var tUintptr uintptr

func printTypeSize() {
   
	fmt.Println("byte size:", unsafe.Sizeof(tByte))                    // 1
	fmt.Println("rune size:", unsafe.Sizeof(tRune))                    // 4
	fmt.Println("int32 size:", unsafe.Sizeof(tInt32))                  // 4
	fmt.Println("int size:", unsafe.Sizeof(tInt))                      // 8
	fmt.Println("int64 size:", unsafe.Sizeof(tInt64))                  // 8
	fmt.Println("float32 size:", unsafe.Sizeof(tFloat32))              // 4
	fmt.Println("float64 size:", unsafe.Sizeof(tFloat64))              // 8
	fmt.Println("complex64 size:", unsafe.Sizeof(tComplex64))          // 8
	fmt.Println("complex128 size:", unsafe.Sizeof(tComplex128))        // 16
	fmt.Println("empty struct size:", unsafe.Sizeof(tEmptyStruct))     // 0
	fmt.Println("struct string size:", unsafe.Sizeof(tStruct))         // 16
	fmt.Println("struct int size:", unsafe.Sizeof(tStructInt))         // 8
	fmt.Println(&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值