当前位置: 首页 > 编程笔记 >

Golang常量iota的使用实例

莘翰采
2023-03-14
本文向大家介绍Golang常量iota的使用html" target="_blank">实例,包括了Golang常量iota的使用实例的使用技巧和注意事项,需要的朋友参考一下

Codes

package main
import "fmt"
type color byte
const (
  black color = iota
  red
  blue
)
func test(c color) {
  fmt.Println(c)
}
func main() {
  const (
    x = iota // 0
    y    // 1
    z    // 2
  )
  fmt.Printf("x=%v, y=%v, z=%v\n", x, y, z)
  const (
    _ = iota
    KB = 1 << (10 * iota) // 1 << (10 * 1)
    MB          // 1 << (10 * 2)
    GB          // 1 << (10 * 3)
  )
  fmt.Printf("KB=%v, MB=%v, GB=%v\n", KB, MB, GB)
  const (
    _, _  = iota, iota * 10 // 0, 0 * 10
    aa, bb          // 1, 1 * 10
    cc, dd          // 2, 2 * 10
  )
  fmt.Printf("aa=%v, bb=%v, cc=%v, dd=%v\n", aa, bb, cc, dd)
  const (
    a = iota // 0
    b    // 1
    c = 100 // 100
    d    // 100
    e = iota // 4
    f    // 5
  )
  fmt.Printf("a=%v, b=%v, c=%v, d=%v, e=%v, f=%v\n", a, b, c, d, e, f)
  const (
    g     = iota // 0
    h float32 = iota // 1
    i     = iota // 2
  )
  fmt.Printf("g: %T %v, f: %T %v, h: %T %v\n", g, g, h, h, i, i)
  test(black) // 0
  test(red)  // 1
  test(blue) // 2
  test(100)  // 100 并未超出 color/byte 类型取值范围
  // xx := 2
  // test(xx)
}

Result

x=0, y=1, z=2
KB=1024, MB=1048576, GB=1073741824
aa=1, bb=10, cc=2, dd=20
a=0, b=1, c=100, d=100, e=4, f=5
g: int 0, f: float32 1, h: int 2
0
1
2
100

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。如果你想了解更多相关内容请查看下面相关链接

 类似资料:
  • 我在Golang中使用iota定义了以下类型。 我想将REST-API中传递的值限制为statusType。使得该值不应超过0,1,2。

  • IOTA(中文埃欧塔),是于2014年众筹的一个项目,宗旨是利用DAG(有向无环图,IOTA里叫做Tangle——缠结)代替区块链实现分布式、不可逆(由密码学保证)信息传递的一种技术,在此基础上集成加密货币功能,服务于物联网。基于 DAG 的设计没有区块的概念,扩容不受区块大小的限制,其可伸缩性取决于网络带宽、CPU处理速度和存储容量的限制。 因为IOTA整个网络目前的算力极低(通常在1~2TPS

  • 本文向大家介绍golang使用信号量热更新的实现示例,包括了golang使用信号量热更新的实现示例的使用技巧和注意事项,需要的朋友参考一下 配置文件热更新是服务器程序的一个基本功能,通过热更新可以不停机调整程序的配置,特别是在生产环境可以提供极大的便利,比如发现log打得太多了可以动态调高日志等级,业务逻辑参数变化,甚至某个功能模块的开关等都可以动态调整。 以上就是本文的全部内容,希望对大家的学习

  • 变量是计算机内存中已命名的存储位置,其中包含了数字或字符串等数据。变量包含的信息被称为变量的值。变量使用用户便于理解脚本操作的名称为用户提供了一种存储、检索和操作数据的途径。 声明和命名变量 命名和声明变量应遵循脚本语言的规则及指导。即使在使用变量前不需要去声明变量,也应养成在编程时声明变量的良好习惯,因为这样有助于防止错误发生。声明一个变量意味着告诉脚本引擎,有一个特定名称的变量,这样就可以在脚

  • 本文向大家介绍Golang学习笔记(二):类型、变量、常量,包括了Golang学习笔记(二):类型、变量、常量的使用技巧和注意事项,需要的朋友参考一下 基本类型 1.基本类型列表 2.类型转换 不支持隐式类型转换,必须进行显式类型转换 转换只发生在两种互相兼容的类型之间: 各类int不允许相互赋值或操作,不然会在编译时报错 示例 结果 3.类型别名 4.类型默认值 声明不赋值,类型零值,非空值,而

  • 第一次面试有点紧张,感觉答的不咋样,结果第二天问HR说过了 1. 项目、主要做的内容(实验室的项目,没问多深) 2. go哪些数据类型是线程安全的(记错了一些) 3. map的两种扩容方式(没看过,答成溢出桶方向了) 4. map可寻址吗 5. 读已经close的channel会怎么样 6. 生产者、消费者用有缓存channel通信场景,如何让生产者和消费者退出 7. GMP中调度机制,有了解过h