编程笔记 Golang基础 010 常量和变量

编程笔记 Golang基础 010 常量和变量

  • 一、常量
  • 二、变量
  • 小结

在 Go 语言中,常量(Constant)是一个固定的值,在程序运行期间不可被修改。它们通常用来表示那些在整个程序执行过程中不会变化的数值或其他类型的数据。在 Go 语言中,变量是用来存储数据的容器。

一、常量

在 Go 语言中,常量(Constant)是一个固定的值,在程序运行期间不可被修改。它们通常用来表示那些在整个程序执行过程中不会变化的数值或其他类型的数据。以下是关于 Go 语言中常量的几个关键点:

  1. 定义
    常量使用 const 关键字进行声明和定义,并且在声明时必须初始化赋值。

    const Pi = 3.14159265358979323846 // 定义一个浮点型常量
    const MaxUsers = 1000               // 定义一个整型常量
    const (StatusActive = iotaStatusInactiveStatusPending
    ) // 使用 iota 创建枚举型常量
    
  2. 数据类型
    常量可以是以下类型:

    • 布尔型 (truefalse)
    • 数字型(包括整数、浮点数和复数)
    • 字符串型
  3. 类型推导
    Go 会根据初始化表达式的类型自动推断常量的类型,也可以显式地指定类型。

    const IntConst int = 42     // 显式指定整型
    const StrConst = "Hello"    // 自动推断为字符串类型
    
  4. 访问权限
    常量名的首字母大小写决定了其可访问性,遵循 Go 的导出规则:

    • 首字母大写的常量可以在包外部被其他包引用。
    • 首字母小写的常量只能在当前包内使用。
  5. iota
    iota 是 Go 语言中的特殊常量,它代表的是当前行的连续整数值,可用于创建枚举或一系列相关联的常量。

  6. 无类型常量
    Go 语言还支持无类型的布尔型、数字型和字符串型常量,这些常量没有明确的底层类型,但可以在适当上下文中转换成具体类型。

通过以上要点,我们可以更好地理解并运用 Go 语言中的常量特性来编写更加简洁和安全的代码。

二、变量

在数学中,变量是一个符号或代数实体,用来表示一个数值,该数值可以在特定的上下文中改变或者可以取不同值。变量通常用拉丁字母(如 x、y、z)或其他符号来表示,并且在数学表达式、方程、函数和不等式中扮演着核心角色。
例如,在方程式 y = 2x + 1 中,变量包括:
x:独立变量,它的取值可以自由变化。
y:依赖变量,其值随着 x 的变化而变化,由给定的函数关系确定。
变量的概念使得数学能够处理一般情况而不是仅仅具体的数值实例,这样我们就可以描述广泛的现象和规律,而不受具体数字的限制。通过使用变量,数学家能够构建模型、解决问题,并进行抽象推理。
在 Go 语言中,变量是用来存储数据的容器。以下是关于 Go 语言中变量的一些关键特性:

  1. 声明
    变量通过 var 关键字进行声明。基本语法如下:

    var variableName type = value
    

    其中:

    • variableName 是你为变量指定的名字。
    • type 是变量的数据类型,如 intstringbool 等。
    • value 是可选的,用于初始化变量的初始值。

    示例:

    var age int = 25
    var name string = "Alice"
    
  2. 简短声明(Short Declaration)
    Go 语言还支持一种简洁的方式来声明和初始化变量,使用 := 运算符,编译器会根据右侧表达式自动推断出变量的类型:

    age := 25 // 类型推断为 int
    name := "Bob" // 类型推断为 string
    

    注意:在函数内部使用简短声明时,如果变量名未被先前声明过,它会同时声明并初始化变量;如果变量名已存在,则只会给该变量赋新值,并且可以省略类型。

  3. 类型推断
    当声明变量时提供了初始值,Go 会自动推断出变量的类型,无需显式声明类型。

  4. 变量作用域
    变量的作用域从声明处开始到其所在块结束。例如,在函数内部声明的变量只在该函数体内可见,而在包级别声明的变量在整个包内可见。

  5. 零值
    如果不初始化变量,它们将具有各自类型的零值,比如整数是0,字符串是空字符串(""),布尔值是 false 等。

  6. 变量命名规则

    • 变量名必须以字母或下划线开头。
    • 变量名后续字符可以包含字母、数字和下划线。
    • 变量名大小写敏感,myVarmyvar 是两个不同的变量。
    • 不允许使用 Go 的关键字作为变量名。
  7. 多重变量声明
    可以一次声明多个变量,只需用逗号分隔各个变量名和类型即可:

    var (firstName string = "John"lastName  string = "Doe"
    )
    
  8. 变量重新声明
    在同一个作用域内,不能重声明同名变量,但可以通过简短声明来改变一个已声明变量的值。在不同作用域内,可以声明相同名称的变量。

小结

计算机程序主要通过数据处理来解决问题,那么在处理中是通过变量来完成的,所有变量就编程的具体对象,深入掌握变量及其用法就非常重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/693371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GIN框架介绍以及使用

Gin是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍。 如果你是性能和高效的追求者, 你会爱上Gin,而且现在大多数企业都在使用Gin框架,反正学一学总没有错。 1、 GIn框…

赞:java使用easy-excel导入数据的通用模板思路

我们在项目中都会有导入导出的功能&#xff0c;这篇文章主要是讲导出的&#xff0c;导入我会在另外一篇博客文章中讲解。 现在我们开始。 首先&#xff1a;需要在项目中的pom.xml中导入easy-excel的依赖 <!--使用esay-excel进行导入导出 --> <dependency> &…

实习日志26 捷通打印机交接

概要 捷通打印机的研究和使用需要下载一些软件 打印机驱动下载说明 驱动&#xff1a;选择DL-721Z 端口选择&#xff1a;USB002 智能助手&#xff1a;&#xff08;连接&#xff0c;设置打印机&#xff09; 打印机显示 rfid未校准 时可以在这里点RFID标签校验 LabelEditor编译…

unity学习(31)——跳转到角色选择界面(打勾?手滑挂错脚本)

There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene. 是因为后来创建了一个camera&#xff0c;因为camera中自带一个组件Audio Listener。所以有两个camera就有两个audio listener导致报错。 一个简单的解决…

超声波清洗机大测评!希亦、洁盟、德国ODI、苏泊尔哪款性价比高?

眼镜逐渐已经成为现在大部分都离不开的一个视线辅助&#xff0c;但是很多朋友对于眼镜的清洗从开始佩戴眼镜时&#xff0c;就没有重视起来。其实清洗眼镜的方法有很多种&#xff0c;手动清洗跟超声波清洗机&#xff0c;后者的清洗相对来说会更加方便快捷一点&#xff0c;且清洗…

Unity【角色/摄像机移动控制】【1.角色移动】

本文主要总结实现角色移动的解决方案。 1. 创建脚本&#xff1a;PlayerController 2. 创建游戏角色Player&#xff0c;在Player下挂载PlayerController脚本 3. 把Camera挂载到Player的子物体中&#xff0c;调整视角&#xff0c;以实现相机跟随效果 3. PlayerController脚本代码…

计算机网络——15套接字编程

套接字编程 Socket编程 Socket编程&#xff1a;应用进程使用传输层提供的服务才能够交换报文&#xff0c;实现应用协议&#xff0c;实现应用 TCP/IP&#xff1a;应用进程使用Socket API访问传输服务 地点&#xff1a;界面上的SAP 方式&#xff1a;Socket API 目标&#xff1…

强化学习入门(Matlab2021b)-创建环境【2】

目录 1 前言2 利用step和reset函数创建自定义环境2.1 对象描述2.2 reset函数2.3 step函数2.3 构建自定义环境3 使用匿名函数传递额外的参数4 可视化检查自定义函数的输出参考链接1 前言 本文介绍如何基于MATLAB编写step、reset函数,创建自己的强化学习环境(Environment)。 使…

Windows 中文版下 MSVC 对 UTF-8 支持(避免乱码)

原文&#xff1a;https://blog.iyatt.com/?p14017 1 测试环境 我这里在 Windows 11 专业版 23H2 中文版PowerShell 7.4.1 中&#xff0c;默认的字符编码是 936 GB2312 官方的标识码解释&#xff1a;https://learn.microsoft.com/zh-cn/windows/win32/Intl/code-page-iden…

IDEA的版本控制Local Changes和settings按钮显示问题

经常用idea的小伙伴应该对标题的这两个功能不陌生&#xff0c;特别是Local Changes 周日刚开工&#xff0c;我的idea就过期了&#xff0c;索性就下载了一个2023.3.3版本的&#xff0c;安装好打开一看&#xff0c;发现Local Changes 和 settings的按钮消失了&#xff0c;虽然说…

红外光谱法(IR)应用领域宽广 全球市场增长速度加快

红外光谱法&#xff08;IR&#xff09;应用领域宽广 全球市场增长速度加快 红外光谱法&#xff08;IR&#xff09;&#xff0c;也称为红外分光光度法&#xff0c;分子吸收红外线&#xff0c;引起分子振动能级、转动能级跃迁&#xff0c;获得物质红外吸收光谱&#xff0c;测定物…

专业定制线缆厂家推荐:精工电联-小批量、多品类集成线缆定制的领航者

高品质定制线缆厂家推荐&#xff1a;精工电联-小批量、多品类集成线缆定制的领航者 在当今这个多元化、个性化的时代&#xff0c;定制化产品和服务越来越受到市场的青睐。精工电联作为高科技智能化产品及自动化设备专用连接线束和连接器配套服务商&#xff0c;致力于为高科技行…

怎么选择通配符证书?

通配符SSL证书又叫泛域名SSL证书&#xff08;Wildcard Certficates&#xff09;&#xff0c;通配符SSL证书可以保护一个域名下同级子域名&#xff0c;不限制该级子域名的数量&#xff0c;且添加新的该级子域名无需重新审核和另外付费&#xff0c;可以节省大量的时间和成本。 一…

QFormLayout 背景色设置不成功

&#xff08;图中的colour 拼错了&#xff09; layout 一定要放在QWidget 里面&#xff0c;然后设置QWidget 的背景色就好了

【C++】C++中的继承

目录 介绍&#xff1a; 一&#xff0c;继承的访问权限 二&#xff0c;基类和派生类对象赋值转换 三&#xff0c;继承中的作用域 四&#xff0c;派生类的默认成员函数 1&#xff0c;构造函数 2&#xff0c;析构函数 3&#xff0c;拷贝构造和赋值运算符 五&#xff0c;继…

Java 9 响应式流(Reactive Streams)

前言 首先出现响应式编程理念&#xff0c;然后出现响应式编程实现&#xff0c;再然后出现响应式规范&#xff0c;响应流主要解决处理元素流的问题—如何将元素流从发布者传递到订阅者&#xff0c;不而不需要发布者阻塞&#xff0c;或者要求订阅者有无限的缓冲区&#xff0c;有…

GitCode配置ssh

下载SSH windows设置里选“应用” 选“可选功能” 添加功能 安装这个 坐等安装&#xff0c;安装好后可以关闭设置。 运行 打开cmd 执行如下指令&#xff0c;启动SSH服务。 net start sshd设置开机自启动 把OpenSSH服务添加到Windows自启动服务中&#xff0c;可避免每…

java中实体pojo对于布尔类型属性命名尽量别以is开头,否则 fastjson可能会导致属性读取不到

假如我们有一个场景&#xff0c;就是需要将一个对象以字符串的形式&#xff0c;也就是jsonString存到一个地方&#xff0c;比如mysql&#xff0c;或者redis的String结构。现在有一个实体&#xff0c;我们自己创建的&#xff0c;叫做CusPojo.java 有两个属性是布尔类型的&#x…

STM32引脚重定义问题

最近在搞资源管理&#xff0c;发现有些引脚不能用 比如这个PE引脚。我想用他输出PWM&#xff0c;但是不能用&#xff0c;我也重定义了&#xff0c;还是不能用。回去翻看了技术手册。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //重映射引脚功能&#xff0c;需…

C语言中各种运算符用法

C语言中有许多不同的运算符&#xff0c;用于执行各种不同的操作。 以下是C语言中常见的运算符及其用法&#xff1a; 算术运算符&#xff1a; 加法运算符&#xff08;&#xff09;&#xff1a;用于将两个值相加。减法运算符&#xff08;-&#xff09;&#xff1a;用于将一个值减…