Go中如何比较GCP serviceusage.v1.State与字符串以判断K8s API状态
解决方法
方法1:使用枚举常量直接比较(推荐)
google.golang.org/genproto/googleapis/api/serviceusage/v1包已经为State枚举定义了对应的常量,直接用这些常量和返回的State值比较即可,这是类型安全且最规范的做法:
import ( serviceusage "google.golang.org/genproto/googleapis/api/serviceusage/v1" ) // 假设resp是调用GetService接口返回的*serviceusage.GetServiceResponse if resp.State == serviceusage.State_ENABLED { // 执行K8s API已启用后的逻辑 }
方法2:转换为字符串比较
如果需要通过字符串值判断,生成的State枚举类型实现了String()方法,可以直接调用该方法获取对应的字符串表示,再进行比较:
// 假设resp是调用GetService接口返回的*serviceusage.GetServiceResponse if resp.State.String() == "ENABLED" { // 执行K8s API已启用后的逻辑 }
注意:优先使用方法1,因为字符串硬编码可能会因为枚举定义变更出现不一致问题,而使用常量能在编译阶段就发现错误。
内容的提问来源于stack exchange,提问作者RobTheRobot16
相关产品推荐
相关产品推荐

