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

Go学习笔记07_变量

内容来源: https://www.runoob.com/go/go-tutorial.html

Go语言变量

1. 作用

变量用于: 存储计算结果, 表示抽象概念.
变量名由字母/数字/下划线组成, 首个字符不能为数字.

使用var关键字声明变量.

varidentifiertypevaridentifier1,identifier2type

2. 变量声明

2.1 声明变量时指定变量类型

  • 如果声明变量时同时赋值, 则变量得到对应值.
  • 如果声明变量时不赋值, 则变量为默认值, 不同类型的默认值不同.
  • 如果声明变量时不赋值, 则必须声明变量类型.

实例

packagemainimport"fmt"funcmain(){variintvarffloat64varbboolvarsstringfmt.Printf("%v %v %v %q\n",i,f,b,s)//打印: 0 0 false ""//数值类型默认值 : 0//布尔类型默认值 : false//字符串类型默认值: ""//其余类型默认值 : nil}

2.2 声明变量时不指定变量类型

  • 声明变量时, 如果不指定变量类型, 必须对变量进行初始化, go根据初始化值自行判断变量类型.

实例

packagemainimport"fmt"funcmain(){vard=truefmt.Println(d)//打印: true//go根据true自动给d分配类型为bool.}

2.3 使用":=", 也是一个声明+赋值的语句.

"var i int = 1"与"i := 1"等价, 都包含了声明变量i的操作, 所以不能重复使用, 会报编译错误.
注意: i := 1这种写法只能用在函数体中, 所以不能用于对全局变量(函数体外)进行声明+赋值.

//声明变量i, 并赋值为1i:=1//上面语句与下面语句等价variint=1//也等价于下面语句variinti=1
variinti:=1//会产生编译错误, 因为i已经声明, 不能重新声明.

2.4 多变量声明

  • 类型相同的多个变量, 可以同时声明+赋值

例1: var vname1, vname2, vname3 int //声明3个int类型的变量vname1, vname2, vname3
例2: var vname1, vname2, vname3 = v1, v2, v3 //声明3个变量vname1, vname2, vname3, 并赋值为v1, v2, v3, 通过值自动推断变量类型.
例3: vname1, vname2, vname3 := v1, v2, v3 //声明3个变量vname1, vname2, vname3, 并赋值为v1, v2, v3, 通过值自动推断变量类型.

  • 类型不相同的多个变量, 也可以同时声明

例4: 这种写法一般用于声明全局变量
var (
a int
b bool
)

2.5 实例

packagemainimport"fmt"varx,yintvar(aintbbool)varc,dint=1,2vare,f=123,"hello"//不同类型的变量也可以在一行中声明//下面这种不带声明格式的写法(:=)只能在函数体中使用//g, h := 123, "hello"funcmain(){g,h:=123,"hello"//这种写法只能在函数体中使用.fmt.Printf("x=%v\n",x)// x=0fmt.Printf("y=%v\n",y)// y=0fmt.Printf("\n")fmt.Printf("a=%v\n",a)// a=0fmt.Printf("b=%v\n",b)// b=falsefmt.Printf("\n")fmt.Printf("c=%v\n",c)// c=1fmt.Printf("d=%v\n",d)// d=2fmt.Printf("\n")fmt.Printf("e=%v\n",e)// e=123fmt.Printf("f=%v\n",f)// f=hellofmt.Printf("\n")fmt.Printf("g=%v\n",g)// g=123fmt.Printf("h=%v\n",h)// h=hellofmt.Printf("\n")}

3. 值类型和引用类型

值类型: 像int, float, bool, string这些基本类型, 这些类型的变量直接指向内存中的值.

  • 使用等号(=)将一个值类型变量赋值给另一个值类型变量时, 实际是在内存中将值进行了拷贝.
  • 可以使用&i来获取变量i的内存地址.

复杂数据: 通常需要使用多个字, 这些数据一般使用引用类型保存.

  • 引用类型的变量r1存储的是r1的值所在的内存地址(或内存地址中第一个字所在的位置).
  • 这个内存地址称为指针, 这个指针实际上也被存在另外的某一个值中.
  • 引用类型的指针指向的多个字: 可以是在连续的内存地址中(这是计算效率最高的一种存储形式), 也可以将这些字分散存放在内存中(每个字都指示了下一个字所在的内存地址).
  • 当使用赋值语句时, r2=r1, 只在引用(地址)被复制(这时r2和r1指向相同的内容), 不会复制真正的内容(这样也会节约存储空间).

4 变量注意事项

  • a := 50这种写法只能用在函数体中.
  • 相同代码块中不能多次声明变量.
  • 如果在声明变量之前使用它, 会得到编译错误"undefined: a".
  • 如果声明一个局部变量, 但相同的代码块中没有使用它, 也会得到编译错误: “a declared but not used.”
  • 对于全局变量, 允许声明但不使用.
  • 多个变量可以在同一行进行赋值.
  • 交换两个变量的值:a, b = b, a, 两个变量类型必须相同.
  • 抛弃值:_, b = 5, 7, 数值5被抛弃,_是一个只写变量, 用户不能得到它的值, 当用户不需要使用函数返回值时, 可以使用_.
  • 并行赋值也可以用于一个函数返回多个返回值:val, err = Func1(var1).
//多变量在同一行赋值vara,bintvarcstringa,b,c=5,7,"abc"//多变量在同一行赋值(使用:=)a,b,c:=5,7,"abc"
http://www.jsqmd.com/news/439005/

相关文章:

  • 2026年考研数学课程推荐,颜语堂教育咨询助力全国学子提分上岸 - 工业品网
  • 聊聊广运达老牌在线平台,好用的有哪些? - 工业设备
  • 亲测好用! AI论文平台 千笔AI VS 笔捷Ai,MBA写作首选!
  • Java Web 课表管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • 2026年工业制冷机组厂家推荐:基于行业趋势与合规评价,直击稳定性与成本痛点 - 品牌推荐
  • 【Linux之旅】Linux 动静态库与 ELF 加载全解析:从制作到底层原理 - 实践
  • 2026年彩钢扣板一站式厂家价格大揭秘,保定富达收费情况 - 工业品网
  • 前后端分离流浪猫狗救助救援网站系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • 2026年廊坊整屋全包公司价格,售后完善企业哪家强 - 工业推荐榜
  • 新手也能上手 一键生成论文工具 千笔·专业学术智能体 VS 文途AI 专科生专属
  • 宠物耳道内窥镜检查,徐汇地区专业服务盘点,宠物绝育/宠物体检/宠物医院/腹腔镜绝育,宠物耳道内窥镜检查医生排行榜单 - 品牌推荐师
  • 考研数学辅导费用大概多少钱 - mypinpai
  • 2026年超低温制冷机厂家推荐:技术趋势与合规标准评测,涵盖化工制药核心场景痛点 - 品牌推荐
  • 2026年北京小程序开发指南:定制化服务如何赋能企业数字化转型 - 品牌2026
  • 超低温制冷机厂家哪家强?2026年权威排名与推荐,解决长期运行与维护成本痛点 - 品牌推荐
  • 洁净度检测设备选哪个品牌 西恩士工业硬核实力成标杆 - 技术权威说
  • 如何为不同行业选超低温制冷机?2026年厂家全面评测与推荐,直击成本与兼容痛点 - 品牌推荐
  • 40至60岁人群营养补充服务哪家靠谱,德耀星通在广州表现如何 - myqiye
  • 2026年铸石粉行业:实力厂商排行及优势盘点,玻璃纤维布/硅酸钾/硅微粉/氢氧化钙/石英砂/环氧树脂,铸石粉企业口碑推荐 - 品牌推荐师
  • 如何为化工制药选制冷机组?2026年工业制冷机组厂家全面评测与推荐 - 品牌推荐
  • 2026年超低温制冷机厂家推荐:工业与商业场景深度评测,解决能耗与稳定性痛点并附排名 - 品牌推荐
  • 2026年3月制氮机定制,靠谱厂家大盘点!制氧机/制氮机,制氮机生产厂家推荐排行 - 品牌推荐师
  • 2026年超低温制冷机厂家推荐:基于多行业应用评价,针对定制化与兼容性痛点精准指南 - 品牌推荐
  • 2026年小程序开发避坑指南:北京定制化服务商如何助力企业突围? - 品牌2026
  • 2026年天津离婚律师电话查询推荐:权威咨询与委托指南 - 十大品牌推荐
  • MRO工业品一站式采购企业怎么选购,天津京姿科技值得选吗? - 工业推荐榜
  • 2026年工业废气处理设备厂家推荐:新疆新远大环保科技,RTO/喷漆/VOCs治理全系解决方案 - 品牌推荐官
  • 避开人潮!泉州泉港樟脚村,拍一组不用滤镜的大片
  • 如何选择高适配性工业制冷机组?2026年厂家推荐与评测,直击成本与集成痛点 - 品牌推荐
  • 再互动解读蒙牛扫码领红包活动的惊人效果 - 品牌智鉴榜