当前位置:网站首页>【愚公系列】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函数,中间用英文半角逗号进行分割!
- 可以将一个变量的值,赋值给另外一个变量,并且变量中原有的旧值被新值所覆盖。
边栏推荐
- Cesium 已知一点经纬度和距离求另一个点的经纬度
- Search engine interface
- Excuse me, does PTS have a good plan for database pressure measurement?
- mysql ”Invalid use of null value“ 解决方法
- Clickhouse (03) how to install and deploy Clickhouse
- 请问,我kafka 3个分区,flinksql 任务中 写了 join操作,,我怎么单独给join
- NLLB-200:Meta开源新模型,可互译200种语言
- CVPR2022 | 医学图像分析中基于频率注入的后门攻击
- Demis Hassabis谈AlphaFold未来目标
- Csma/cd carrier monitoring multipoint access / collision detection protocol
猜你喜欢

Hands on Teaching: XML modeling

The longest ascending subsequence model acwing 482 Chorus formation

Reverse non return to zero code, Manchester code and differential Manchester code of common digital signal coding

Docker deploy Oracle

Pert diagram (engineering network diagram)

Advanced Mathematics - Chapter 8 differential calculus of multivariate functions 1

最长上升子序列模型 AcWing 482. 合唱队形

CVPR2022 | 医学图像分析中基于频率注入的后门攻击

JS get the current time, month, day, year, and the uniapp location applet opens the map to select the location

XML文件的解析操作
随机推荐
Excuse me, when using Flink SQL sink data to Kafka, the execution is successful, but there is no number in Kafka
請問,在使用flink sql sink數據到kafka的時候出現執行成功,但是kafka裏面沒有數
Leetcode——236. The nearest common ancestor of binary tree
The difference between memory overflow and memory leak
一个简单LEGv8处理器的Verilog实现【四】【单周期实现基础知识及模块设计讲解】
FCOS3D label assignment
Horizontal of libsgm_ path_ Interpretation of aggregation program
Clickhouse (03) how to install and deploy Clickhouse
通过 iValueConverter 给datagrid 的背景颜色 动态赋值
bashrc与profile
mysql导入文件出现Data truncated for column ‘xxx’ at row 1的原因
Excusez - moi, l'exécution a été réussie lors de l'utilisation des données de puits SQL Flink à Kafka, mais il n'y a pas de nombre dans Kafka
Excuse me, does PTS have a good plan for database pressure measurement?
最长上升子序列模型 AcWing 1014. 登山
Is the spare money in your hand better to fry stocks or buy financial products?
请问,redis没有消费消息,都在redis里堆着是怎么回事?用的是cerely 。
Interface automation test - solution of data dependency between interfaces
PERT图(工程网络图)
WPF DataGrid realizes the UI interface to respond to a data change in a single line
Beginner XML