当前位置: 首页 > 知识库问答 >
问题:

如何在Go语言中执行枚举?

沈运恒
2023-03-14

我有过

const (
  BlahFoo = 1 << iota
  MooFoo
)

然后

type Cluster struct {
  a  int
  b  int
}

我要集群。a只能是BlahFoo或MooFoo

我该如何执行?

共有1个答案

庄飞
2023-03-14
type FooEnum int

const (
  BlahFoo FooEnum = 1 << iota
  MooFoo
)

type Cluster struct {
  a FooEnum
  b int
}
 类似资料:
  • 主要内容:多个延迟执行语句的处理顺序,使用延迟执行语句在函数退出时释放资源Go语言的 defer 语句会将其后面跟随的语句进行延迟处理,在 defer 归属的函数即将返回时,将延迟处理的语句按 defer 的逆序进行执行,也就是说,先被 defer 的语句最后被执行,最后被 defer 的语句,最先被执行。 关键字 defer 的用法类似于面向对象编程语言 Java 和 C# 的 finally 语句块,它一般用于释放某些已分配的资源,典型的例子就是对一个互斥解锁,或者

  • 枚举类型用于声明一组命名的常量,当一个变量有几种可能的取值时,可以将它定义为枚举类型。在 Go 语言中,并没有提供枚举类型,但是枚举类型又是开发过程中非常重要的数据类型。因为它可以事先定义一组有效的值,可以有效地防止用户提交无效数据,抽象到业务场景中就是我们平时网页上遇到的下拉框,或者我们选择快递地址时的省市信息,均为枚举类型的用武之地。所以在 Go 语言中对常量进行了一定的扩展,使其可以完美地替

  • 函数的运行时间的长短是衡量这个函数性能的重要指标,特别是在对比和基准测试中,要得到函数的运行时间,最简单的办法就是在函数执行之前设置一个起始时间,并在函数运行结束时获取从起始时间到现在的时间间隔,这个时间间隔就是函数的运行时间。 在Go语言中我们可以使用 time 包中的 Since() 函数来获取函数的运行时间,Go语言官方文档中对 Since() 函数的介绍是这样的。 func Since(t

  • 问题内容: 我有一个带有字段的结构类型。 在代码的某个时刻,我想声明一个字面值(例如,当我知道值应该为0或指向0时,您就知道我的意思了) …除非这不起作用 所以我尝试这个 …但是这也不起作用 我该怎么做呢?我唯一能想到的解决方案是使用占位符变量 注意: 当使用 int而不是时, 语法可以 正常 工作 。 编辑:不,不。为此表示歉意。 编辑: 显然,我的问题含糊不清。我正在寻找一种方式来 字面上状态

  • 问题内容: 有什么方法可以从C#执行Go函数吗?对于Python,我将使用Ironpython为例。 我知道我可以产生一个执行Go脚本的过程,但是如果可能的话,我真的不想回退到这种解决方案。 Google搜索没有显示任何内容,因此有什么方法可以使用API​​做到这一点?还是我必须回退流程? 问题答案: 编辑:我的答案现在是不正确的,因为自从我发布以来,Go已经更新。 这个stackoverflow

  • 我写了以下代码: 演示 JLS 14.10说: 当且仅当主机系统已确定词汇上包含assert语句的顶级类启用断言时,才会启用在其类完成初始化后执行的assert语句。 我以为我在类中通过assert true启用了断言,但它仍然不起作用。我如何才能启用关于所说内容的断言?