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

Go学习:变量

目录

1. 变量的命名

2. 变量的声明

3. 变量声明时注意事项

4. 变量的初始化 

5. 简单例子


         变量主要用来存储数据信息,变量的值可以通过变量名进行访问。

1. 变量的命名

        在Go语言中,变量名的命名规则 与其他编程语言一样,都是由字母、数字、下划线组成,其中变量名的首字符不能为数字。

  • 变量名应该使用驼峰命名法(Camel Case),例如 myVariable。
  • 变量名应尽量具有描述性,能够清晰表达变量的用途和含义。
  • 变量名由字母、数字、下划线组成,其中首个字符不能为数字
  • Go语言中关键字和保留字都不能作变量名。

2. 变量的声明

注意:Go语言中,在声明变量时,是将 变量的类型放在变量的名称之后。例如,在C/C++中,变量的声明格式为  int a;  ,在Go中,变量的声明格式为  var a int  

        变量的声明通常使用 var 关键字。

        变量的声明格式为: 

                var   identifier  type

  • var:声明变量的关键字
  • identifier:变量名
  • type:变量的类型        
  • 注意:声明变量时,行尾无须添加分号

例如: 

var a int              // 声明整型类型的变量,并保存整数数值

var b string           // 声明字符串类型的变量

var c []float32        // 声明32位浮点切片类型的变量

var d func() bool      // 声明返回值为布尔类型的函数变量

var e struct{          // 声明结构体类型的变量,该结构体拥有整型的x字段
    x int
}

        在上述代码中:例如, var a int  ,其中 var 为关键字,a 为变量名,int 是变量的类型。 

3. 变量声明时注意事项

  • (1)可以一次声明多个变量,例如,var a,b int
  • (2)变量在声明之后必须要使用,即 程序中不包含没有使用的无意义的变量
  • (3)声明一个变量后,变量有默认值,每个变量会初始化为其类型的默认值(见第4部分:变量的初始化
  • (4)程序中,同一个{ }中,声明的变量名是唯一

4. 变量的初始化 

        Go语言在声明变量时,自动对变量对应的内存区域进行初始化操作。每个变量会初始化为其类型的默认值。

  •  整型和浮点型变量的默认值为0。
  •  字符串变量的默认值为空字符串。
  •  布尔型变量的默认值为false。
  •  切片、函数、指针变量的默认值为nil。

(1)变量初始化的标准格式 

                var 变量名 类型 = 表达式

例如:

                var a int = 2

其中,a为变量名,类型为int,a的初始值为2。 

(2)编译器推导类型的格式

        var a int = 2  中 2和int 同为int类型,因此可以进一步简化初始化的写法,即

var a = 2 

等号右边的部分在编译原理里被称为右值(rvalue)。 

(3) 自动推导类型

a := 2

其中,:= 只能出现在函数内(包括在方法内),此时Go编译器会自动进行数据类型的推断。

注意:

  •  := 代表声明的同时对变量进行定义,不需要var关键字
  • 使用 := 写法时,推导声明写法的左值变量必须是没有定义过的变量,若再次定义,会出现编译错误。
  • 该种写法同样支持多个类型变量同时声明并赋值,例如:

a, b := 1, 2

5. 简单例子

package main

import "fmt"

func main() {
	//1. 声明格式
	var a int
	fmt.Println("a = ", a) //声明一个变量后,变量有默认值,int类型默认为0

	//可以同时声明多个变量
	//var b, c int

	a = 10 //赋值:先声明,后赋值,赋值前必须先声明变量
	fmt.Println("a = ", a)

	//2.变量的初始化,声明变量时,同时赋值
	var b int = 2 //初始化,声明变量时,同时赋值
	b = 20        //赋值,先声明,后赋值
	fmt.Println("b= ", b)

	//3.自动推导类型,必须初始化,通过初始化的值确定类型(常用)
	c := 30 //:= 代表声明的同时对变量进行定义,不需要var关键字
	fmt.Println("c = ", c)
	//%T:打印变量所属的类型
	fmt.Printf("c type is %T\n", c)
}

运行结果:


http://www.kler.cn/a/428799.html

相关文章:

  • iOS 性能优化:实战案例分享
  • Vue3 nginx 打包后遇到的问题
  • 数据库管理-第285期 Oracle 23ai:深入浅出向量索引(20250117)
  • “UniApp的音频播放——点击视频进入空白+解决视频播放器切换视频时一直加载的问题”——video.js、video-js.css
  • 华为HuaweiCloudStack(一)介绍与架构
  • 详解构造函数和析构函数
  • 重生之我在21世纪学C++—关系、条件、逻辑操作符
  • 第三部分:进阶概念 7.数组与对象 --[JavaScript 新手村:开启编程之旅的第一步]
  • 猜数字的趣味小游戏——rand函数、srand函数、time函数的使用
  • 深入探索汽车CMSF功能:工作原理与应用场景详解
  • 基于触觉感知的目标识别技术在智能机器人抓取中的应用综述
  • 项目实现:C++与SQL整合
  • burp(8)-ip伪造及爬虫审计
  • 计算机毕设-基于springboot的实践性教学系统设计与实现(附源码+lw+ppt+开题报告)
  • 证明网络中的流形成一个凸集
  • ETCD的封装和测试
  • 【Python】练习【24-12-8】
  • Mac M1 安装数据库
  • 关于项目二次开发那点事儿
  • 力扣打卡5:LRU缓存
  • Qt 面试题学习14_2024-12-6
  • Docker单机网络:解锁本地开发环境的无限潜能
  • Android 15 平台签名的共享 UID 许可名单
  • SQL面试题——京东SQL面试题 合并数据
  • 【Canvas与图标】乡土风金属铝边立方红黄底黑字图像处理图标
  • C#生成CSR(CertificateSigningRequest)和密钥