GO: 定时器NewTimer、NewTicker 和time.After

Go 之iota

iota是一个常量计数器,一般在常量表达式中使用,可以理解为const定义常量的行数的索引,注意是行数

使用场景

主要应用在需要枚举的地方

示例1

package main
import "fmt"
const (NoPay     = iota // 订单未支付 0Paid             // 已支付  1Cancelled        // 已取消 2PendIng          // 未发货 3Delivered        // 已发货 4Received         // 已收货 5
)func main() {fmt.Println(NoPay,Received)
}

示例2

package main
import "fmt"
const (_           = iota                   // 通过分配给空白标识符忽略第一个值KB  = 1 << (10 * iota) // 1 << (10*1)MB                                   // 1 << (10*2)GB                                   // 1 << (10*3)TB                                   // 1 << (10*4)PB                                   // 1 << (10*5)EB                                   // 1 << (10*6)ZB                                   // 1 << (10*7)YB                                   // 1 << (10*8)
)
func main() {fmt.Println(KB,MB,GB)
}

iota不等于0,它代表const语句块中的行索引,只有在第一行时才等于0,每出现一次常量,其所代表的数字会自动增加1

示例1:

package mainimport "fmt"const (a = iotabc = "c"de = iotaf
)func main() {fmt.Println(a, b, c, d, e, f) //0 1 c c 4 5
}

示例2:

package mainimport "fmt"const (b="b"a           = iota)
func main() {fmt.Println(b,a)//b 1
}

在每一个const关键字出现时被重置为0

示例:

package mainimport "fmt"const (a           = iotab
)
const (c           = iota
)func main() {fmt.Println(a,b,c)//0 1 0
}

支持移位运算

package mainimport "fmt"const (a =  1 << iotabcdef
)func main() {fmt.Println(a, b, c, d, e, f) //1 2 4 8 16 32
}

总结

使用iota能保证一组常量的唯一性,避免无效值,提高代码可维护性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/10190.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设备二维码怎么生成?三分钟即可搞定

在现代工业生产中&#xff0c;设备的维护和巡检是保障生产连续性和安全性的重要环节。随着技术的发展&#xff0c;二维码技术因其便捷性和高效性被广泛应用于设备巡检中。 给每个设备配备一个二维码&#xff0c;一线人员用手机扫一扫&#xff0c;几秒钟就能上报巡检结果&#…

Measurement and Analysis of Large-Scale Network File System Workloads——论文泛读

ATC 2008 Paper 分布式元数据论文阅读笔记整理 问题 网络文件系统在当今的数据存储中发挥着越来越重要的作用。使用网络文件系统可以降低管理成本&#xff0c;从多个位置可靠地访问的数据。这些系统的设计通常以对文件系统工作负载和用户行为的理解为指导[12&#xff0c;19&a…

Chrome浏览器的一些实用命令

Chrome浏览器提供了许多实用的命令和内部页面&#xff0c;可以帮助用户更高效地管理和使用浏览器。以下是一些常用的Chrome命令和内部页面&#xff1a; chrome://about/: 查看所有支持的命令和内部页面。在地址栏中输入这个命令后&#xff0c;会列出所有可用的内部命令和URL&a…

C++ LCR 090. 打家劫舍 II

文章目录 一、题目描述二、参考代码 一、题目描述 一个专业的小偷&#xff0c;计划偷窃一个环形街道上沿街的房屋&#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 &#xff0c;这意味着第一个房屋和最后一个房屋是紧挨着的。同时&#xff0c;相邻的房屋…

408数据结构算法题专项-链表总结归纳

历年链表题目详解&#xff1a; 2009 倒数第k结点 2012 找共同后缀起始 2015 删除绝对值相同点 2019 重新排列结点 分析&#xff1a;难度整体来说不难&#xff0c;重点考察的是基本功和画图。 重点需要掌握的技巧&#xff1a; ①增 增加即利用头插法或尾插法进行结点添加 …

docker 容器无法直接读取宿主机文件

最近一个需求, 要在后端直接使用代码直接生成 pdf 文档, 由于使用的 apache 的工具包, 该工具包无法直接解析中文字体, 需要导入外部 中文插件包, 相关代码如下: PDPage page new PDPage(PDRectangle.A4);document.addPage(page);PDFont fontFile PDType0Font.load(document…

瑞友天翼应用虚拟化系统SQL注入漏洞

文章目录 漏洞描述漏洞原理影响版本漏洞复现防御方法 漏洞描述 瑞友天翼应用虚拟化系统是基于服务器计算架构的应用虚拟化平台&#xff0c;它将用户各种应用软件集中部署到瑞友天翼服务集群&#xff0c;客户端通过 WEB 即可访问经服务器上授权的应用软件&#xff0c;实现集中应…

MutationObserver对象

MutationObserver对象 MutationObserver (W3C DOM4)对象提供了监视对DOM树所做更改的能力,其被设计为旧的Mutation Events功能的替代品(该功能是DOM3 Events规范的一部分)。 描述 Mutation Observer用来监视DOM变动,DOM的任何变动,例如节点的增减、属性的变动、文本内容的…

JavaScript之importrequire总结

概述 我们在写js代码时&#xff0c;为了方便维护&#xff0c;会使用高内聚低耦合的方式把不同的功能写入不同的文件中&#xff0c;但是不同的文件如何交互呢&#xff1f; 这个时候我们的import、require就可以出场了&#xff0c;它们就是为了解决在A文件中引入B文件中的内容的…

Python中的多进程、多线程、协程

Python中的多线程、多进程、协程 一、概述 1. 多线程Thread &#xff08;threading&#xff09;&#xff1a; 优点&#xff1a;同一个进程中可以启动多个线程&#xff0c;充分利用IO时&#xff0c;cpu进行等待的时间缺点&#xff1a;相对于进程&#xff0c;多线程只能并发执…

深入理解JavaScript数组

深入理解JavaScript数组&#xff1a;玩转数据结构 前言数组的基础知识什么是数组如何创建一个数组如何访问数组元素 数组的常用操作数组的长度 length更改数组项数组的遍历数组类型的检测数组的添加和删除元素&#xff08;头尾操作 push()、pop()、unshift()、shift()&#xff…

Android App开机启动

清单文件 <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"><uses-permission android:name"andro…

enable_shared_from_this使用笔记

解决了&#xff1a; 不能通过原指针增加引用次数的问题 &#xff0c;通过weak_ptr实现。 class MyCar:public std::enable_shared_from_this<MyCar> { public:~MyCar() { std::cout << "free ~Mycar()" << std::endl; } };int main() { MyCar* _…

centos7下fastdfs分布式部署

需要先在159及120服务器上安装fastdfs服务 可参考&#xff1a;centos7部署FastDFS服务_centos fastdfs 增加到服务中-CSDN博客 1、整体架构&#xff0c;使用3个服务器节点&#xff0c;其中两台为跟踪器节点及存储节点&#xff0c;一台服务器搭建nginx做统一入口进行负载均衡 …

K8S安装并搭建集群

1. 先给每台机器安装docker环境 卸载旧的docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 配置docker的yum库 yum install -y yum-utilsyum-config-manager --a…

JavaEE之线程(3)_线程的开始、中断、等待、休眠线程、线程的状态

前言 在本栏的上一节&#xff08;https://blog.csdn.net/2301_80653026/article/details/138500558&#xff09;&#xff0c;我们重点讲解了五种不同的创建线程的方式&#xff0c;我们还介绍了Tread类的常见构造方法和常见属性&#xff0c;在这一节中我们将会继续介绍Tread类。…

简单的Python HTML 输出

1、问题背景 一名初学者在尝试将 Python 脚本输出到网页上时遇到了一些问题。他当前使用 Python 和 HTML 进行开发&#xff0c;并且遇到了以下问题&#xff1a; 担心自己的代码过于复杂&#xff0c;尤其是 WebOutput() 函数。希望通过 JavaScript 使用 HTML 模板文件更新数据。…

Go语言高级特性

目录 1. 并发编程 1.1 Goroutine轻量级线程 1.2 Channel通信机制 1.3 WaitGroup等待组 1.4 Mutex互斥锁 2. 垃圾回收机制 2.1 内存管理介绍 2.2 垃圾回收原理 2.3 性能调优策略 2.4 常见问题及解决方案 3. 接口与反射 3.1 接口定义与实现 3.2 空接口与类型断言 3…

【PG数据库】PostgreSQL 日志归档详细操作流程

1.1 日志归档的目的 pg数据库日志归档是将PostgreSQL数据库的日志文件进行归档的过程。 归档的主要目的是为了保留历史数据&#xff0c;确保数据的一致性和完整性&#xff0c;同时为数据恢复提供必要的支持。 pg数据库日志归档的目的包括&#xff1a; 1.数据恢复&#xff1…

Tomcat中服务启动失败,如何查看启动失败日志?

1. 查看 localhost.log 这个日志文件通常包含有关特定 web 应用的详细错误信息。运行以下命令查看 localhost.log 中的错误&#xff1a; sudo tail -n 100 /opt/tomcat/latest/logs/localhost.YYYY-MM-DD.log请替换 YYYY-MM-DD 为当前日期&#xff0c;或选择最近的日志文件日…