当前位置: 首页 > news >正文

上海住建部网站微信官网网页版

上海住建部网站,微信官网网页版,wordpress 编辑器推荐,自己接私单网站开发常量 常量是在程序运行过程中#xff0c;其值不可以发生改变的数据#xff0c;常量无法被获取地址 常量中的数据类型能是布尔型、数字型#xff08;整型、浮点型和复数型#xff09;、字符串 常量的定义是通过const关键字完成的#xff0c;并且常量名称大写为公开#…常量 常量是在程序运行过程中其值不可以发生改变的数据常量无法被获取地址 常量中的数据类型能是布尔型、数字型整型、浮点型和复数型、字符串 常量的定义是通过const关键字完成的并且常量名称大写为公开小写为私有一般定义在函数外定义在函数内属于局部常量 常量和变量一样可以省略数据类型由编译器推断完成 常量的定义 const Name string 不知火舞 const Age 99 const Address 峡谷76号 const name, age, address 李白, 99, 峡谷野区草丛// 当常量比较多的时候可以使用常量块来表示比较简洁 const (USERNAME 干将莫邪AGE 88ADDRESS 中路草丛 )// 也可以批量赋值 const GENDER, HOBBY 男, 黑丝常量除不可以再次赋值外和变量究竟有什么不同? 常量不会分配存储空间无需像变量那样通过内存寻址来取值因此无法获取地址。 常量值不能再次改变变量可以 const NAME itzhuzhufunc main() {NAME haha // 报错 }函数内外都有相同常量时采用就近原则 const (USERNAME 干将莫邪AGE 88ADDRESS 中路草丛 )func main() {const USERNAME, AGE, ADDRESS itzhuzhu, 24, 中国fmt.Println(USERNAME, AGE, ADDRESS) // 就近原则打印的是itzhuzhu }定义常量不使用不会编译错误不同作用域也可以定义相同常量 func main() {const X 123fmt.Println(我是外面的, X)const Y 1.23 // 未使用不会引发编译错误{const X 321 // 不同作用域定义同名常量fmt.Println(我是里面的, X)} }常量值也可以是某些编译器能直接计算结果的表达式如unsafe.Sizeof、len、cap等 func main() {const (ptrSize unsafe.Sizeof(uintptr(0)) // 函数返回操作数在内存中的字节大小strSize len(hello, world!))fmt.Println(ptrSize)fmt.Println(strSize) }在常量组中如不指定类型和初始化值则与上一行非空常量的值相同 func main() {const (X uint16 120Y // 与上一行x类型、右值相同S abcZ // 与s类型、右值相同)fmt.Printf(%T, %v\n, Y, Y) // 输出类型和值fmt.Printf(%T, %v\n, Z, Z) }打印结果 uint16, 120 string, abc显示常量和隐式定义常量区别这里没搞懂原因x默认是int类型int转给byte也没有做强转 func main() {const x 100 // 隐式无常量类型值随便写const y byte x // 相当于const y byte 100const a int 100 // 显式指定常量类型编译器会做强类型検查const b byte a // 错误无法将 a (类型 int) 用作类型 byt }那为什么隐式的可以赋值显示的不能赋值呢 iota 枚举就是将数据值一一列出来枚举可以用来表示一些固定的值枚举是常量组成的。在Go可以通过iota实现枚举的功能。 iota是Go语言的常量计数器const出现时会将iota初始化为0const中每新增一行iota就会计数一次递增默认数据类型为int iota可以持续递增 const (a 1b 2c 3)上面代码使用iota可以简化为 const (a iota // 第一行 重置为0 a:0b // 第二行 新增1行 b:1c // 第三行 新增1行 c:2)自增默认类型为int不过可显式指定常量类型 const (a iota // int iota 0b float32 iota // float32 iota 1c // float32 iota 2)fmt.Println(a, b, c)fmt.Printf(%T\n%T\n%T\n, a, b, c)_跳过值 const (a iota // 0_ // 1c // 2d // 3)fmt.Println(a, c, d)使用位移计算 const (_ iota // 0KB 1 (10 * iota) // 1 (10 * 1)MB // 1 (10 * 2)GB // 1 (10 * 3))如果中断iota递增必须再次遇到iota才会恢复按行递增否则将沿用上一次取值 const (a 1 iota // 第0行 重置为0 a 1 0b // 第1行 新增1行 b 1 1c // 第2行 新增1行 c 1 2d 4 // 第3行 新增1行 d 4e // 第4行 新增1行 e 4 与上一行常量右值表达式相同f // 第5行 新增1行 f 4 只要不遇到iota就一直是上次赋值的值就是4g iota // 第6行 重置为0 g 6 这里遇到了iota恢复iota自增计数包括前面所有的常量i // 第7行 新增1行 i 7 接着g1,如果再定义常量初始化就还是和4一样循环j // 第8行 新增1行 i 8 )func main() {fmt.Println(a, b, c, d, e, f, g, i, j) }如果使用多个常量赋值的时候后面的数据都会跟着第一行的格式走直到下一个iota出现 const (a, b 1 iota, 2 iota // iota 0 a iota 1 b iota 2 a 1 ,b 2c, d // iota 1 c iota 1 d iota 2 c 2 ,d 3e, f // iota 2 e iota 1 f iota 2 e 3 ,f 4g, h 3 iota, 4 iota // iota 3 g iota 3 h iota 4 g 6 ,h 7i, j // iota 4 i iota 3 j iota 4 i 7 ,j 8 ) fmt.Println(a, b, c, d, e, f, g, h, i, j)可以自定义类型来实现用途明确的枚举类型。但须注意这并不能将取值限定在预定义的枚举常量值范围内。 func main() {test(red)test(10000000) // 错误10000000超出color/byte类型取值范围。x : 2test(x) // 错误无法将 x (类型 int) 用作类型 color }type color byte // 自定义类型const (black color iota // 指定常量类型redblue )func test(c color) {fmt.Println(c) }
http://www.zqtcl.cn/news/461500/

相关文章:

  • 网站建设与管理维护 大学论文铁路建设单位网站
  • 贵州企业展示型网站建设wordpress文章点不开
  • 毕业设计可以做网站吗网页版征信报告查询
  • 企业网站每年的费用钢筋网片每平米重量
  • 做网站是属火的职业吗苏州网站建设信息网络
  • 怎么自己建一个论坛网站如何做中国古城的网站
  • 做网站表格网站建设综合实训案例
  • vs2012 网站开发wordpress好看的页面跳转
  • 阿里去要企业网站建设方案书小程序开发 杭州
  • 微信公众号文档网站开发与优化课程总结
  • 网站建设网课海东营销网站建设公司
  • 仿站工具教程视频宣传片免费模板
  • 美食网站建设项目分析报告莱芜都市网人才招聘
  • js做网站福田网站设计公司
  • 郑州做网站好长春市建设工程信息网站
  • 题库网站怎么做做网站文件夹都起什么名字
  • 河南网站怎么备案东台市住房和建设局网站
  • 有什么手机做网站的asp.net网站安全
  • 怎么做查询网站后台做爰的视频网站
  • 迪虎科技网站建设国际市场那个app可以看
  • 怎么做跳转不影响原网站排名wordpress添加邮箱设置
  • 网站内容规范外贸电商怎么做
  • 郑州做网站齿轮wordpress 文章h标签美化
  • 建设银行网站怎么修改手机号码吗网站建设怎样容易
  • 网站建设风险管理计划书户外媒体网站建设免费
  • 学到什么程度可以做网站网站维护的要求包括
  • 泉州网站设计平台南阳响应式网站
  • 阿里云 企业网站选哪种推广普通话的文字内容
  • 广州市南沙建设局网站中山建网站咨询电话
  • 怎么创建网站快捷方式网络服务器搭建配置与管理 下载