You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言中如何将枚举常量赋值给结构体的指针类型成员?

Go中为结构体指针字段赋值枚举常量的方案

针对你遇到的问题,有两种简洁的解决方式:

方式一:使用new函数分配内存

先通过new创建一个UnitCategoryCode类型的指针,再对指针指向的值赋值:

// 先分配内存,让CategoryCode指向非nil地址
unit.CategoryCode = new(d.UnitCategoryCode)
// 对指针指向的变量赋值枚举常量
*unit.CategoryCode = d.AdministrativeUnit

方式二:借助临时变量取地址

先把枚举常量赋值给临时变量,再取变量的地址赋值给CategoryCode:

// 将常量值存入临时变量
catCode := d.AdministrativeUnit
// 取临时变量的地址赋值给指针字段
unit.CategoryCode = &catCode

补充说明

因为d.AdministrativeUnit是常量,Go不允许直接取常量的地址(&d.AdministrativeUnit非法),所以必须通过new分配内存,或者借助变量中转来获取合法指针,再完成赋值。

内容的提问来源于stack exchange,提问作者Marc Le Bihan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 11:57:05