当前位置:网站首页>【愚公系列】2022年7月 Go教学课程 005-变量
【愚公系列】2022年7月 Go教学课程 005-变量
2022-07-07 12:35: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=10
num=20
fmt.Println(age,num) //10,20
将一个变量赋值给另一个变量如下:
var age int =10
var num int
num=age
fmt.Println(num) //10
注意:变量进行赋值会覆盖原有的旧值
3.4 案例:交换两个变量的值
临时变量
package main
import "fmt"
func main(){
a := 1
b := 5
var t int
t = a
a = b
b = t
fmt.Println("a = ", a, "b = ", b )
}
不使用临时变量
package main
import "fmt"
func main(){
a := 1
b := 5
a = a + b
b = a - b
a = a - b
fmt.Println("a = ", a, "b = ", b )
}
直接赋值
package main
import "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函数,中间用英文半角逗号进行分割!
- 可以将一个变量的值,赋值给另外一个变量,并且变量中原有的旧值被新值所覆盖。
边栏推荐
- Horizontal of libsgm_ path_ Interpretation of aggregation program
- Leetcode——剑指 Offer 05. 替换空格
- How does MySQL control the number of replace?
- Mrs offline data analysis: process OBS data through Flink job
- 使用day.js让时间 (显示为几分钟前 几小时前 几天前 几个月前 )
- NLLB-200:Meta开源新模型,可互译200种语言
- Did login metamask
- LeetCode 648. 单词替换
- LeetCode 648. Word replacement
- bashrc与profile
猜你喜欢
![[Reading stereo matching papers] [III] ints](/img/d3/4238432492ac3dc4ec14a971b8848d.png)
[Reading stereo matching papers] [III] ints

OAuth 2.0 + JWT 保护API安全

UML 顺序图(时序图)

PERT图(工程网络图)

js 获取当前时间 年月日,uniapp定位 小程序打开地图选择地点

Transferring files between VMware and host

常用數字信號編碼之反向不歸零碼碼、曼徹斯特編碼、差分曼徹斯特編碼

一个简单LEGv8处理器的Verilog实现【四】【单周期实现基础知识及模块设计讲解】
![Verilog implementation of a simple legv8 processor [4] [explanation of basic knowledge and module design of single cycle implementation]](/img/d3/20674983717d829489149b4d3bfedf.png)
Verilog implementation of a simple legv8 processor [4] [explanation of basic knowledge and module design of single cycle implementation]

VSCode 配置使用 PyLint 语法检查器
随机推荐
低代码平台中的数据连接方式(下)
Environment configuration
杭电oj2092 整数解
requires php ~7.1 -> your PHP version (7.0.18) does not satisfy that requirement
Hangdian oj2054 a = = B? ???
Cesium knows the longitude and latitude of one point and the distance to find the longitude and latitude of another point
Assign a dynamic value to the background color of DataGrid through ivalueconverter
Vmware 与主机之间传输文件
oracle 非自动提交解决
用例图
Leetcode——344. 反转字符串/541. 反转字符串 II/151. 颠倒字符串中的单词/剑指 Offer 58 - II. 左旋转字符串
【AI实战】应用xgboost.XGBRegressor搭建空气质量预测模型(二)
设备故障预测机床故障提前预警机械设备振动监测机床故障预警CNC震动无线监控设备异常提前预警
oracle 触发器实现级联更新
How can the PC page call QQ for online chat?
PERT图(工程网络图)
2022PAGC 金帆奖 | 融云荣膺「年度杰出产品技术服务商」
内部排序——插入排序
Docker deploy Oracle
Oracle Linux 9.0 正式发布