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

news/2024/9/22 12:25:44/

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.ppmy.cn/news/1459984.html

相关文章

微信小程序新技能解锁:轻松实现二维码扫描与识别

微信小程序新技能解锁&#xff1a;轻松实现二维码扫描与识别 在移动互联网时代&#xff0c;二维码已成为连接线上线下的桥梁&#xff0c;而微信小程序作为轻量级应用的代表&#xff0c;自然也少不了二维码扫描与识别的功能。本文将手把手教你如何在微信小程序中集成这项实用功…

神经网络复习--神经网络算法模型及BP算法

文章目录 神经网络模型的构成BP神经网络 神经网络模型的构成 三种表示方式&#xff1a; 神经网络的三要素&#xff1a; 具有突触或连接&#xff0c;用权重表示神经元的连接强度具有时空整合功能的输入信号累加器激励函数用于限制神经网络的输出 感知神经网络 BP神经网络 …

设计模式之组合模式:探索对象组合的动态管理与操作技巧

​ 一、什么是组合模式 组合模式&#xff08;Composite Pattern&#xff09;是一种结构型模式&#xff08;Structural Pattern&#xff09;&#xff0c;它主要解决的是如何将对象组合成树状以表示“部分-整体”的层次结构&#xff0c;并且可以对整个树进行统一的操作&#xff0…

FANUC机器人工具坐标偏移的用法

一、工具坐标偏移的使用场景 在机器人位置不改变的情况下&#xff0c;工业机器人使用默认工具坐标系示教的一系列运动点位&#xff0c;要保持原本点位位置不变的情况下&#xff0c;改变机器人工具坐标的参数&#xff0c;就要用到机器人坐标转化的功能。在FANUC机器人上体现为机…

无人机+人工智能:多智能体,智能蜂群技术详解

无人机与人工智能的结合&#xff0c;特别是在多智能体和智能蜂群技术方面&#xff0c;已经成为当今科技领域的前沿。这种技术的核心在于利用人工智能的决策和学习能力&#xff0c;结合无人机的机动性和传感器能力&#xff0c;实现一种高度协同、自主、智能的作战或任务执行方式…

【平台搭建+数据处理+数据可视化】

第一部分:大数据平台搭建 一、Hadoop 1、完全分布式Hadoop集群搭建: (1)在master主节点将/opt目录下的Hadoop安装包hadoop-3.1.4.tar.gz解压到/opt/software目录下。 mkdir -p /opt/software tar -zxf /opt/hadoop-3.1.4.tar.gz -C /opt/software (2)创建Hadoop临时数…

QRegExp

描述 QRegExp 类使用正则表达式提供模式匹配。 正则表达式或“正则表达式”是一种用于匹配文本中子字符串的模式。这在许多情况下都很有用&#xff0c;例如&#xff0c; 验证 正则表达式可以测试子字符串是否满足某些条件&#xff0c;例如是整数或不包含空格。搜索 正则表达式…

Android之给Button上添加按压效果

一、配置stateListAnimator参数实现按压效果 1、按钮控件 <Buttonandroid:id"id/mBtnLogin"android:layout_width"match_parent"android:layout_height"48dp"android:background"drawable/shape_jfrb_login_button"android:state…