当前位置:网站首页>【愚公系列】2022年7月 Go教学课程 005-变量
【愚公系列】2022年7月 Go教学课程 005-变量
2022-07-07 09:21:00 【华为云】
一、变量
1.变量的定义
变量来源于数学,用于描述计算机中的数据存储空间。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数式语言(如Haskell)中,变量可能是不可变(immutable)的。在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象(如在Java和Visual Basic中);但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。
2.变量的作用
变量的作用就是在内存中标记和存储数据。
内存,全称内存储器。用于存放计算机运行过程中的数据。
计算机为了更好的存储数据,将内存分为不同的存储单元如下:
从内存中取出一个存储单元,存储相应的数据:
比如上述红色区域,变量名=区域的名字,数据就存在区域中
3.变量的声明和初始化
3.1 变量的声明
Go 是静态语言,所有变量在使用前必须先进行声明。声明的意义在于告诉编译器该变量可以操作的内存的边界信息,而这种边界通常又是由变量的类型信息提供的。在 Go 语言中,有一个通用的变量声明方法是这样的:
变量的使用
fmt.Println(a)
3.2 变量的初始化
在定义变量的时候可以赋值,这个过程称为变量初始化
var age int=10
3.3 变量的赋值
可以在变量定义完成之后再给变量赋值,先声明后赋值。
var age,num int age=10num=20fmt.Println(age,num) //10,20
将一个变量赋值给另一个变量如下:
var age int =10var num intnum=agefmt.Println(num) //10
注意:变量进行赋值会覆盖原有的旧值
3.4 案例:交换两个变量的值
临时变量
package mainimport "fmt"func main(){ a := 1 b := 5 var t int t = a a = b b = t fmt.Println("a = ", a, "b = ", b )}
不使用临时变量
package mainimport "fmt"func main(){ a := 1 b := 5 a = a + b b = a - b a = a - b fmt.Println("a = ", a, "b = ", b )}
直接赋值
package mainimport "fmt"func main() { a := []int{1, 2} b := []int{3, 4, 5} a, b = b, a fmt.Println(`a:`, a) fmt.Println(`b:`, b)}
总结
- 变量声明:var变量名称变量类型
- 声明多个变量:var变量名称1,变量名称…类型
- 声明整型变量,默认值为0
- 输出语句可以只使用一个Println函数,中间用英文半角逗号进行分割!
- 可以将一个变量的值,赋值给另外一个变量,并且变量中原有的旧值被新值所覆盖。
边栏推荐
- Qtcreator sets multiple qmake
- Project ERROR: Unknown module(s) in QT: core gui
- 常用sql语句整理:mysql
- Array object sorting
- The post-90s resigned and started a business, saying they would kill cloud database
- 学习笔记|数据小白使用DataEase制作数据大屏
- Creative information was surveyed by 2 institutions: greatdb database has been deployed in 9 places
- Wallhaven wallpaper desktop version
- Galaxy Kirin desktop operating system installation postgresql13 (source code installation)
- PostgreSQL中的表复制
猜你喜欢
2021-04-08
RationalDMIS2022 高级编程宏程序
对比学习之 Unsupervised Learning of Visual Features by Contrasting Cluster Assignments
90后,辞职创业,说要卷死云数据库
[C #] the solution of WinForm operation zoom (blur)
electron添加SQLite数据库
Verilog 实现数码管显视驱动【附源码】
Vscode 尝试在目标目录创建文件时发生一个错误:拒绝访问【已解决】
[untitled]
关于SIoU《SIoU Loss: More Powerful Learning for Bounding Box Regression Zhora Gevorgyan 》的一些看法及代码实现
随机推荐
Debezium同步之Debezium架构详解
uniCloud
Case study of Jinshan API translation function based on retrofit framework
Static semantic check of clang tidy in cicd
科普达人丨一文弄懂什么是云计算?
对比学习之 Unsupervised Learning of Visual Features by Contrasting Cluster Assignments
高考作文,高频提及科技那些事儿……
常用sql语句整理:mysql
Idea shortcut keys
Avoid mutating a prop directly since the value will be overwritten whenever the parent component
【时间格式工具函数的封装】
vim 的各种用法,很实用哦,都是本人是在工作中学习和总结的
Deconstruction and assignment of variables
Ping tool ICMP message learning
互联网协议
学习笔记|数据小白使用DataEase制作数据大屏
Deeply understand the characteristics of database transaction isolation
Antd select selector drop-down box follows the scroll bar to scroll through the solution
Drive HC based on de2115 development board_ SR04 ultrasonic ranging module [source code attached]
Array object sorting