Go语言学习笔记 --- 常量的定义详解

Go 学习笔记(7)— 常量定义、常量使用、枚举用法、iota 常量、不设置初始值常量 1. 常量定义 常量是指在程序运行时,不会被修改的量。 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。 常量的定义格式: const identifier [type] = value 可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。 显式类型定义 const b string = "abc" 隐式类型定义 const b = "a... 阅读详情

学习笔记根据 无闻 go语言基础教程 整理

常量的定义

  • 常量的值在编译时就已经确定
  • 常量的定义格式与变量基本相同
  • 等号右侧必须是常量或者常量的表达式
  • 常量的表达式中的函数必须是内置函数
  • 示例:

    const a int = 1
    const b = 'A'
    
    const (
        c = a
        d = a + 1
        e = a * 2
    )
    
    const f,g,h = 1, "2" ,'t'

常量的初始化规则与枚举

  • 在定义常量组时,如果不提供初始值,则表示将使用上行的表达式
  • 使用相同的表达式不代表具有相同的值

    import (
        "fmt"
    )
    
    var str = "test" // 全局变量在在编译时不存在, 而const定义的常量存在
    
    const (
        a = 2
        b
        c = "12345"
        d = len(c)
        // dd = len(str) // 报错 `const initializer len(str) is not a constant`
    
        e, f = 1, "2"
        g, h // 备注此处如果想省略同上行,必须个数保持一致,不能只有一项
    
    )
    
    func main() {
        fmt.Println(a) // 2
        fmt.Println(b) // 2 // 未定义则同上行的值
        fmt.Println(c) // 12345
        fmt.Println(d) // 5
        // fmt.Println(dd) // 无法输出,此处报错
        fmt.Println()
        fmt.Println(g) // 1
        fmt.Println(h) // 2
    }
    
  • iota是常量的计数器,从0开始,组中每定义1个常量自动递增1
  • 通过初始化规则与iota可以达到枚举的效果
  • 每遇到一个const关键字, iota就会重置为0

    import (
        "fmt"
    )
    
    const (
        a = 'A'
        b
        c = iota
        d
    )
    
    const (
        e = 'e'
        f = iota
    )
    
    func main() {
        fmt.Println(a) // 65
        fmt.Println(b) // 65
        fmt.Println(c) // 2
        fmt.Println(d) // 3
        fmt.Println(e) // 69
        fmt.Println(f) // 1  这里f在一个新的const中从0开始数值为1
    }
    
  • 备注:上述只为举例方便,一般常量定义都需要使用大写,编码规范性,切记!

私有常量的定义

  • 如果不想被外部访问到,需要使用 _ 或 c ,如下所示:

    const (
        MAX_SIZE = 10 // 可以被外部调用
        _TEST = "ST" // 不可被外部调用
        cTEST2 = "ST2" // 不可被外部调用
    )
    
鲁棒优化入门(一)——工具箱Xprog和RSOME的安装与使用 Xprog是由新加坡国立大学的Peng Xiong于2016年发布的一款matlab工具箱,可以用于求解确定性优化、随机优化、鲁棒优化和分布式鲁棒优化问题。 还有一个针对鲁棒随机优化设计的matlab工具箱——RSOME(Robust Stochastic Optimization Made Easy),也可以用来解决一般的线性规划、随机规划、鲁棒优化和数据驱动的分布式鲁棒优化问题。............... 阅读详情

相关推荐

Jenkins+docker 微服务实现自动化部署安装和部署过程

本文详细介绍了如何使用Docker部署Jenkins自动化服务器。主要内容包括:1)拉取Jenkins官方或BlueOcean镜像;2)创建容器并配置端口映射、数据卷挂载;3)设置防火墙规则;4)配置清华大学镜像加速;5)安装必要插件;6)SSH密钥配置;7)构建触发器设置;8)编写自动化构建脚本。通过Docker部署Jenkins可以简化安装流程,确保环境一致性,并利用容器特性实现快速启动和管理。文章提供了完整的配置步骤和注意事项,帮助用户快速搭建CI/CD环境。

qq_33665793的博客 1694

【Go】Go 语言中的常量

本文介绍了GO语言中的常量、特殊常量、无类型常量

weixin_44211968的博客 1262

dmx512协议c语言编程,DMX512协议+c程序代码.pdf

DMX512 协议1.协议简介DMX 是Digital MultipleX 的缩写 ,意为多路数字传输。DMX512 控制协议是美国舞台灯光协会(USITT)于1990 年发布的灯光控制器与灯具设备进行数据传输的工业标准 ,全称是 USITT DMX512(1990) ,包括电气特性、数据协议、数据格式等方面的内容。2. 电气特性和物理层2.1. 电气特...

weixin_39928993的博客 2547

Go 语言中的常量定义(Let‘s Go 七)

Go中定义常量与C语言一样,也是使用const关键字来定义常量的。,其中typeName(类型)可省略!常量可以是字符、字符串、布尔值或数值。常量不能用:=语法声明。const site string = "https://qiucode.cn" const siteName string = "秋码记录"和变量一样,也是可以批量进行声明的。const(site = "https://qiucode.cn" siteName = "秋码记录")

仗剑行于江湖,执笔记江湖事。 1355

基于 VS Code + CMake + Make + GNU工具链 + OpenOCD 的通用MCU开发环境搭建教程

以CH32V307(RISCV)和STM32F103(Cortex-M3)为例的Vscode+gnu单片机环境搭建。

余十三_的博客 2179

moveit——基于octomap的碰撞检测

机械臂对棚顶进行碰撞检测。

如果想成为中心,那么就到中心去吧。 1357

Go 常量定义

定义常量在各个语言中都是不可或缺的语法了. 而有些语言在常量的基础上, 增加了枚举类型, 比如C. enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }; 上面的枚举, 对应的值依次为0到6. 而在Go中, 是没有提供枚举类型的. 如果实现上面相同的功能, 难道要写成这样么? const .

烟草的香味的博客 789

2024年11月架构设计师案例分析真题回顾,附参考答案、解析及所涉知识点(二)

软考高级系统架构设计师考试包含三个科目:信息系统综合知识、案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午第二科案例分析的题目,同时附带参考解答、解析和所涉知识点。

一几文的编程学习笔记。 1664

GO语言特殊常量之iota

iota,特殊常量,可以认为是一个可以被编译器修改的常量。 iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。 iota 可以被用作枚举值: package main import "fmt" func main() { const ( ...

weixin_43311271的博客 445

基于YOLOv11的手术器械计数系统:从数据集构建到Web应用部署

m2cai16-tool数据集:包含15种腹腔镜手术器械的标注图像Cholec80数据集:包含80个胆囊切除手术视频,标注了7种器械SurgicalTools数据集:包含超过10,000张手术器械图像,涵盖21类常见器械手术剪(Scissors)止血钳(Hemostat)持针器(Needle Holder)手术刀(Scalpel)镊子(Forceps)拉钩(Retractor)吸引器(Suction)

YOLO 397

把 300 亿参数的 Qwen3-30B-A3B 塞进 16GB 手机:MoE、mmap 与内存轮转的完整拆解

这篇文章详细拆解了如何在16GB内存手机上运行305亿参数的Qwen3-30B-A3B大模型。作者通过MoE(专家混合)架构、内存映射(mmap)和专用NPU内存(rpcmem)的巧妙结合实现了这一"不可能"的任务。 核心原理在于:MoE模型将庞大的前馈网络拆分为128个专家,每个词只激活8个专家,97%的权重处于闲置状态;通过mmap技术按需加载当前需要的专家权重;同时利用NPU专用内存高效计算关键部分。三个关键开关(GGML_HEXAGON_MOE_PAGING=1、--mmap、GGML_CPU_RE

q742971636的博客 188

go 语言常量

go 语言常量

岳来的博客 1502

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

GO语言学习入门笔记系列详解(二):Go的变量和常量定义

GO语言学习入门笔记系列详解(二):Go的变量和常量定义 变量定义 var关键字:说明是一个变量 变量名在前,变量类型在后 函数内定义变量 func variableZeroValue() { //变量名在前,变量类型在后 var a int var s string //go语言的变量一定会有一个初始值 //int类型初值是0 //string类型的初值是"",使用%q可以将空字符串打出来 fmt.Printf("%d %q\n", a, s) } go语言函数内的变量一旦定义,就必

BKSW.的博客 506

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【Golang】案例为基浅谈Go的变量与常量

✨ 配合案例代码讲解Go语言中的变量与常量

当下的快乐永远最简单! 9758

Golang- GO语言学习笔记之定义变量

目录 Golang 编程注意事项 定义变量 包内变量 函数内变量 总结: 内建变量类型 bool, string 整数类型 byte, rune float32,float64,complex64,complex128 常量与枚举 常量 使用常量定义枚举类型 Golang 编程注意事项 go语言定义的变量一定要被使用,不然会报错 方法体()和{一定要连写,...

GodChou的博客 744

Go语言学习笔记—golang基础语法

golang基础语法

qq_39280718的博客 3278

Go语言学习笔记

在Example1中,当我们进行第一次show操作时,打印的是初始化之后的s对象。在进行修改name操作后,s对象被拷贝到Setstuname方法中,stu的变量生命周期也只限于这一个方法内,所以我们在方法内的操作只会随着方法调用完而消失。而在Example2中,进行修改name操作后,传入方法的是主函数中s的地址,赋值给stu对象,所以进行的所有修改操作都会更改s的值。func 后面跟的()内的值意为该方法是student类的方法,s即为一个对象,后面的内容与go语言函数的定义相同。

weixin_62132578的博客 1596

Golang 定义常量

Golang 定义常量 在所有的编程语言当中常量都代表一个固定的值,一旦常量被定义则无法修改。在Golang中使用const关键字进行常量声明。 定义常量 Golang定义常规类型的常量可以忽略类型。 1.const SUCCESS = true 2.const FAIL = false 定义多个相同类型的常量 1.const ( 2. CONST1 = 0 3. CONST2 = 1 4. CONST3 = 2 5.) 定义特定类型的常量 定义特定类型的常量需要根据实际情况来决定。 假如

华龙在飞翔 2119

Golang 常量

相对于变量, 常量是恒定不变的值, 经常用于定义程序运行期间不会改变的那些值. 常量的定义使用 常量的声明与变量的声明很相似, 只是把 var 换成了 const, 常量在定义的时候必须赋值. 在程序开发中, 我们用常量存储一直不会发生变化的数据. 例如: Π, 身份证号码等. 像这类数据, 在整个程序运行中都是不允许发生改变的. package main import "fmt" func main(){ const pi float64 = 3.14159 // pi = 4.56

李培冠的博客 8572

Golang(3)-变量与常量的定义

文章目录一、变量1.1、变量声明1.2、变量初始化1.3、变量赋值1.4、匿名变量二、常量2.1、字面常量2.2、常量定义2.3、预定义常量 更多关于Golang核心编程知识的文章请看:Golang核心编程(0)-目录页 变量是几乎所有编程语言中最基本的组成元素。从根本上说,变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块...

BoringError的博客 1911

go语言学习--变量、常量

go语言学习--变量、常量定义变量使用var定义变量使用使用:=定义变量常量声明常量常量用作枚举内置变量类型 对于如何定义go语言变量、常量、类型的简单学习 变量 使用var定义变量 var a int = 1 var a = 1 var a int 声明变量时可以省略类型, 也可以省略初始值,但是两者必须有一个 没有类型可以通过初始值进行推导,对于没有明确的初始化的变量,则初始化成对应类型的空值 同时声明多个变量–可以是不同的类型 var a , b , c int //三个变量同时声明成

M_jianjianjiao 671

关于《Go语言学习笔记》这本书

#关于《Go语言学习笔记》这本书 书如其名,真的算是一本笔记,书中大量篇幅都是代码块,文字介绍较少,基础理论内容也很少, 更多的是对某一些特性和一些用法上做实践,并且如果你细读的话也会发现一些写错的地方。 如果非要嗑这本书 建议先看一遍**《Go by Example 中文版》**,对基本使用和语法有一定了解后再嗑 笔者下卷部分并没有继续看,因为感觉还不到看源码的时候,所以再深造一段时间在回来看一下。 这里粗略的整理一下知识点,没时间看这本书,可以看一下笔者整理的部分,并不全,也只是针对笔者感兴趣的地方进行

xiao4-800K的博客 1321

Go语言 常量

constzero=0.0//无类型浮点常量const(eof=-1//无类型整型常量constu,vfloat32=0,3//u=0.0,v=3.0,常量的多重赋值//a=3,b=4,c="foo",无类型整型和字符串常量Go的常量定义可以限定常量类型,但不是必需的。如果定义常量时没有指定类型,那么它与字面常量一样,是无类型常量。常量定义的右值也可以是一个在编译期运算的常量表达式,比如。

ljy的博客 1004

go语言学习笔记

go是一种并发、带垃圾回收、快速编译,静态类型、编译型、强类型的语言。主要用途有高并发服务器、区块链、云计算等。

huahua的博客 1040

go 语言学习 go 语言常量

学习go 语言常量

qq_41407687的博客 1008

【Go】P2 Golang 常量与变量

对于无类型常量,在使用时会根据上下文自动推断类型。使用var// 定义单个变量// 定义时初始化var name string = "张三"// 类型推断var name = "张三" // 自动推断为string类型var age = 25 // 自动推断为int类型var height = 175.5 // 自动推断为float64类型方法一:同类型批量定义方法二:不同类型批量定义方法三:批量定义并初始化var name, age, height = "李四", 30, 180.0。

weixin_43098506的博客 941
上一篇: Go语言学习笔记 --- 常量、变量、批量定义与声明、数据类型、类型别名、类型转换
下一篇: Go语言学习笔记 --- 运算符
Wang's Blog
博客等级 码龄12年 7438粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值