iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >解读golang中的const常量和iota
  • 575
分享到

解读golang中的const常量和iota

golangconst常量golangiota常量golang常量 2022-12-29 12:12:54 575人浏览 独家记忆
摘要

目录golang中的const常量和iotaGolang定义常量定义常量定义特定类型的常量总结golang中的const常量和iota golang中通过var定义变量,通过cons

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))

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
)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

您可能感兴趣的文档:

--结束END--

本文标题: 解读golang中的const常量和iota

本文链接: https://www.lsjlt.com/news/176178.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 解读golang中的const常量和iota
    目录golang中的const常量和iotagolang定义常量定义常量定义特定类型的常量总结golang中的const常量和iota golang中通过var定义变量,通过cons...
    99+
    2022-12-29
    golang const常量 golang iota常量 golang常量
  • ES6 let和const中怎么定义变量与常量
    ES6 let和const中怎么定义变量与常量,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。关于 letlet是小作用域的变量的声明{ &...
    99+
    2024-04-02
  • 一文搞懂Golang中iota的用法和原理
    目录前言iota的使用iota在const关键字出现时将被重置为0按行计数所有注释行和空行全部忽略跳值占位多个iota一行多个iota首行插队中间插队没有表达式的常量定义复用上一行的...
    99+
    2024-04-02
  • 详解C++中的const和constexpr
    目录一.const常量与#define比较二.const修饰1.修饰普通变量,必须初始化2.修饰类变量和成员变量3.修饰成员函数4.修饰指针5.修饰引用三.const转换四.顶层co...
    99+
    2024-04-02
  • Golang常量和变量的差异与用法解析
    掌握Golang中常量与变量的区别与用法,需要具体代码示例在Golang中,常量和变量是程序中最基本的组成部分,它们在存储和赋值方式上有着一些差异。本文将详细介绍Golang中常量和变量的区别和用法,并提供具体的代码示例,以帮助读者更好地理...
    99+
    2023-12-23
    常量 (Constants) 变量 (Variables) Golang编程 区别与用法 (Differences an
  • JavaScript变量中var,let和const的区别
    目录前言ES5与ES6的区别1. 作用域2. 全局属性3. 变量提升与暂时性死区4. 重复声明let与const的区别1. 常量最佳实践前言 JavaScript中一共有3种用来声明...
    99+
    2024-04-02
  • 怎么解析C++中的const和constexpr
    本篇文章为大家展示了怎么解析C++中的const和constexpr,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一.const常量与#define比较define只是简单的替换,没有类型,cons...
    99+
    2023-06-21
  • Golang有类型常量和无类型常量的区别
    场景 在 Go 语言中,常量分为有类型常量和无类型常量。 // 有类型常量 const VERSION string = "v1.0.0" // 无类型常量 const RELEA...
    99+
    2023-05-14
    Golang 有类型常量 无类型常量
  • C++和C中const的区别详解
    目录C中的constconst修饰局部变量const修饰全局变量const修饰的全局变量有外部链接属性const与指针C++中的constconst修饰普通全局变量const修饰普通...
    99+
    2024-04-02
  • 一文读懂JS中的var/let/const和暂时性死区
    目录js中变量的特征变量的定义与访问简单说下作用域语法varlet与暂时性死区constjs中变量的特征 js的变量是松散类型的。变量可以用于保存任何类型的数据。所以js也被称为弱类...
    99+
    2023-02-27
    JS var let const JS var JS let JS const
  • C#中的const和readonly关键字详解
    const和readonly经常被用来修饰类的字段,两者有何异同呢? const 1、声明const类型变量一定要赋初值吗? 一定要赋初值 public class Student ...
    99+
    2022-11-13
    C# const关键字 readonly关键字
  • Golang函数的常量和变量的应用和管理方法
    Golang是一种快速、高效、并发的编程语言,具有很多强大的特性,其中常量和变量的管理和应用是必须掌握的基本知识。在本篇文章中,我们将会探讨Golang中常量和变量的定义、应用和管理方法,为您深入了解Golang的编程实践提供帮助。一、常量...
    99+
    2023-05-17
    Golang函数 常量和变量 应用和管理方法
  • Golang有类型常量和无类型常量的区别是什么
    本篇内容主要讲解“Golang有类型常量和无类型常量的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Golang有类型常量和无类型常量的区别是什么”吧!场景在 Go 语言中,常量分为有...
    99+
    2023-07-05
  • 深入了解C语言中的const和指针
    目录前言指针的赋值问题ANSI C 有关简单赋值的标准问题解决const修饰const修饰变量const修饰指针前言 文章内容由阅读《C专家编程》整理而来。希望可以帮助大家解决在指针...
    99+
    2024-04-02
  • Golang中channel的原理解读(推荐)
    数据结构 channel的数据结构在$GOROOT/src/runtime/chan.go文件下: type hchan struct { qcount uint ...
    99+
    2024-04-02
  • Go语言中的变量和常量
    一、变量相关 1.变量声明 C# : int a; Go : var a int; 需要在前面加一个var关键字,后面定义类型 可以使用 var( a int; b string;)...
    99+
    2024-04-02
  • php中的常见攻击解读
    目录php常见攻击解读什么是CSRF攻击XSS攻击php网站常见一些安全漏洞及防御方法常见PHP网站安全漏洞PHP常见漏洞的防范措施php常见攻击解读 什么是CSRF攻击 CSRF跨...
    99+
    2024-04-02
  • Golang并发操作中常见的读写锁详析
    互斥锁简单粗暴,谁拿到谁操作。今天给大家介绍一下读写锁,读写锁比互斥锁略微复杂一些,不过我相信我们今天能够把他拿下! golang读写锁,其特征在于 读锁:可以同时进行多个...
    99+
    2024-04-02
  • C语言中const和define的区别你了解嘛
    目录define和const使用const和define区别总结define和const使用 const和define区别 #include <stdio.h> #...
    99+
    2024-04-02
  • 浅析Golang中变量与常量的声明与使用
    目录变量变量的类型声明变量常量iota常见的使用iota的技巧变量 变量的类型 变量的作用是用来存储数据,不同的变量保存的数据类型有可能是不一样的,一般常见的数据类型有:整型、浮点型...
    99+
    2023-05-14
    Golang变量与常量声明 Golang变量 常量 Go 变量 常量
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作