解读golang中的const常量和iota

2022-12-29 68阅读 0评论

golang?=中的const常量iota

Golang中通过var定义变量,通过const定义常量。

常量只能是基本的简单值类型,常量一经定义其值不可修改Java中的final)。

const (     Maxint = int(^UInt(0) >> 1)     MinInt = -MaxInt - 1 ) const PI = 3.14 PI = 3.14159//编译错误,Cannot assign to PI 
iota是一个特殊常量,可以认为是一个可以被编译器修改的常量。iota在const关键字出现时将被重置为0,const中每新增一行常量声明将使 iota 计数加1,因此iota可作为const 语句块中的行索引
const (     a   = 1                  //1 (iota=0)     b                        //1 (iota=1,同上一行,相当于写b=1)     c   = b + iota           //3 (iota=2,b=1)     d                        //4 (iota=3,同上一行,相当于写b+iota,b=1)     e                        //5 (iota=4,同上一行,相当于写b+iota,b=1)     f   = "last one but one" //  (iota=5)     end = iota               //6 (iota=6) ) fmt.Println(a, reflect.typeOf(a)) fmt.Println(b, reflect.TypeOf(b)) fmt.Println(c, reflect.TypeOf(c)) fmt.Println(d, reflect.TypeOf(d)) fmt.Println(e, reflect.TypeOf(e)) fmt.Println(f, reflect.TypeOf(f)) fmt.Println(end, reflect.TypeOf(end)) /*  输出: 1 int 1 int 3 int 4 int 5 int last one but one string 6 int */

GoLang定义常量

在所有的编程语言当中常量都代表一个固定的值,一旦常量被定义则无法修改。在Golang中使用const关键字进行常量声明。

定义常量

GOlang定义常规类型的常量可以忽略类型。

const SUCCesS = true const FAIL = false

定义多个相同类型的常量

const ( CONST1 = 0 CONST2 = 1 CONST3 = 2 )

定义特定类型的常量

定义特定类型的常量需要根据实际情况来决定。

假如我们现在用常量来声明用户的三个基本状态(正常,禁止登录,删除),一般这种情况我们会首先声明一个用户状态的类型。

声明用户状态类型:

type userStatus int

定义用户状态常量:

const ( USER_STATUS_NORMAL UserStatus = iota USER_STATUS_DISABLED_LOGIN USER_STATUS_DELETE )

完整示例:

package user //Status 用户类型. type Status int const ( //STATUS_NORMAL 状态正常 STATUS_NORMAL Status = iota //STATUS_DISABLED_LOGIN 禁止登录. STATUS_DISABLED_LOGIN //STATUS_DELETE 已删除. STATUS_DELETE )

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持云初冀北。

免责声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:goliszhou@gmail.com
$

发表评论

表情:
评论列表 (暂无评论,68人围观)

还没有评论,来说两句吧...