Skip to content
鼓励作者:欢迎打赏犒劳

数据类型转换工具类

go的类型转换真的烦!!!!!!!

type_transformation.go

指针转值

go
func StringVal(p *string) string {
    if p == nil {
        return ""
    }
    return *p
}

func IntVal(p *int) int {
    if p == nil {
        return 0
    }
    return *p
}

func Int32Val(p *int32) int32 {
    if p == nil {
        return 0
    }
    return *p
}

func Int64Val(p *int64) int64 {
    if p == nil {
        return 0
    }
    return *p
}

func TimeVal(p *time.Time) int64 {
    if p == nil {
        return 0
    }
    return p.Unix()
}

值转指针

go
// Package ptr 提供快速创建基本类型指针的辅助函数。
// 常用于 GORM 模型初始化、API 请求体构造、可选配置字段等场景。
package ptr

import "time"

// String 返回字符串指针
func String(v string) *string {
	return &v
}

// Int 返回整型指针
func Int(v int) *int {
	return &v
}

// Int8 返回 int8 指针
func Int8(v int8) *int8 {
	return &v
}

// Int16 返回 int16 指针
func Int16(v int16) *int16 {
	return &v
}

// Int32 返回 int32 指针
func Int32(v int32) *int32 {
	return &v
}

// Int64 返回 int64 指针
func Int64(v int64) *int64 {
	return &v
}

// Uint 返回 uint 指针
func Uint(v uint) *uint {
	return &v
}

// Uint8 返回 uint8 指针
func Uint8(v uint8) *uint8 {
	return &v
}

// Uint16 返回 uint16 指针
func Uint16(v uint16) *uint16 {
	return &v
}

// Uint32 返回 uint32 指针
func Uint32(v uint32) *uint32 {
	return &v
}

// Uint64 返回 uint64 指针
func Uint64(v uint64) *uint64 {
	return &v
}

// Float32 返回 float32 指针
func Float32(v float32) *float32 {
	return &v
}

// Float64 返回 float64 指针
func Float64(v float64) *float64 {
	return &v
}

// Bool 返回布尔值指针
func Bool(v bool) *bool {
	return &v
}

// Byte 返回 byte(uint8)指针
func Byte(v byte) *byte {
	return &v
}

// Time 返回 time.Time 指针
func Time(t time.Time) *time.Time {
	return &t
}

// Any 返回任意类型的指针(泛型)
func Any[T any](v T) *T {
	return &v
}

如有转载或 CV 的请标注本站原文地址