老虞学GoLang笔记

编程入门 行业动态 更新时间:2024-10-20 13:28:23

老虞学GoLang<a href=https://www.elefans.com/category/jswz/34/1770047.html style=笔记"/>

老虞学GoLang笔记

为什么80%的码农都做不了架构师?>>>   


常量

常量和C#中的概念相同,在编译期被创建。因为在编译期必须确定其值,因此在声明常量时有一些限制。

  • 其类型必须是:数值、字符串、布尔值
  • 表达式必须是在编译期可计算的
  • 声明常量的同时必须进行初始化,其值不可再次修改

Doc

  • .html#Constants
  • .html#Constant_expressions
  • .html#Constant_declarations
  • //doc/go_spec.html#Iota

语法

const关键字用于声明常量 const [(] 名称 [数据类型] = 表达式 [)] const ( 多个常量名称 [数据类型]= 对应的多个表达式 )

如果定义多行常量而表达式一致时可省略其他行的表达式

声明时如果不指定数据类型,则该常量为无类型常量

const Pi = 3.14159265358 //float64
Pi=3.1415

编译错误: cannot assign to Pi, 变量名Pi已经被使用这里是无法再次给Pi赋值的

const a, b, c = 1, false, "str" //多重赋值

一次可以声明多个常量,且同时赋值,其类型可以不一致

const d = 1 << 2 //需计算的表达式
复制可以是一个可以在编译期计算出结果的表达式const ( //批量声明Monday, Tuesday, Wednesday = 1, 2, 3Thursday, Friday, Saturday = 4, 5, 6)

批量声明多个常量

const e, f float64 = 1, 2 / 1.0

声明多个变量时,指定其数据类型,此时 e和f均是float64数据类型

const g int ,h float64 = 1,2/1.0  

不能分别指定数据类型,数据类型后面需要跟着 '=',编译错误: syntax error: unexpected comma, expecting =


iota

在Go中使用另一个常量iota计数器,只能在常量的表达式中使用。 iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。使用iota能简化定义,在定义枚举时很有用。

fmt.Println(iota)  

iota只能在const内部使用。编译错误: undefined: iota

const a = iota // a=0
const (b = iota     //b=0c            //c=1
)

iota从0开始计数

const (bit00 uint32 = 1 << iota //bit00=1bit01                    //bit01=2bit02                    //bit02=4)

iota可在表达式中(b=iota也是表达式)

 const ( loc0, bit0 uint32 = iota, 1 << iota   //loc0=0,bit0=1loc1, bit1                            //loc1=1,bit1=2loc2, bit2                            //loc2=2,bit2=4 )const ( e, f, g = iota, iota, iota //e=0,f=0,g=0 
)

在同一行,iota相同

const ( h = iota    //h=0 i = 100     //i=100 j           //j=100 k = iota    //k=3  
)

虽然只使用了两次iota,但每新起一行iota都会计数

转载于:

更多推荐

老虞学GoLang笔记

本文发布于:2024-02-24 14:39:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1695640.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:笔记   老虞学   GoLang

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!