内容简介:变量是计算机语言中存储数据的抽象概念,变量通过变量名访问变量的本质是计算机分配的一小块内存,专门用于存放指定数据,在程序运行过程中该数值可以改变变量的存储往往具有瞬时性、或者说是临时存储,当程序运行结束,存放该数据的内存就会释放,该变量就会消息
变量的概念
变量是计算机语言中存储数据的抽象概念,变量通过变量名访问
变量的本质是计算机分配的一小块内存,专门用于存放指定数据,在程序运行过程中该数值可以改变
变量的存储往往具有瞬时性、或者说是临时存储,当程序运行结束,存放该数据的内存就会释放,该变量就会消息
Go语言的变量名由数字、字母、下划线组成,首个字符不能是数字
声明变量
声明变量有多种形式:
1.未初始化话的标准格式
var 变量名 变量类型 复制代码
2.未初始化的批量格式
不用每行都用 var 声明
var( a int b string c []float32 d func() bool e struct{ x int y string } ) 复制代码
未初始化变量的默认值
- 整型和浮点型变量默认值为 0
- 字符串默认值为空字符串
- 布尔型默认值为false
- 函数、指针变量默认值为 nil
package main import "fmt" func main() { var( a int b string c []float32 d bool e []int f [3]int h int32 = 100 g func() string ) fmt.Printf("%T , % v \n", a , a) fmt.Printf("%T , % v \n", b , b) fmt.Printf("%T , % v \n", c , c) fmt.Printf("%T , % v \n", d , d) fmt.Printf("%T , % v \n", e , e) fmt.Printf("%T , % v \n", f , f) fmt.Printf("%T , % v \n", h , h) fmt.Printf("%T , % v \n", g , g) } 复制代码
输出如下:
int , 0 string , []float32 , [] bool , false []int , [] [3]int , [ 0 0 0] int32 , 100 func() string , <nil> 复制代码
3.初始化变量的标准格式
- var 变量名 类型 = 表格式
4.初始化变量的编译器自动推断类型格式
- var 变量名 = 表达式
5.初始化变量的简短声明格式(短变量声明格式)
- 变量名 := 表达式
- 使用 := 赋值操作符, := 可以高效的创建一个新的变量,称之为初始化声明
- 声明语句省略了 var 关键字
- 声明类型将由编译器自动推断
- 这是声明变量的首选方式,但是它只能被用在函数体内,而不可以用于全局变量的声明与赋值
- 该变量名必须是没有定义过的变量,若定义过,将发生编译错误
- 在多个短变量声明和赋值中,至少有一个新声明的变量出现在左侧中,那么即便有其他变量名可能是重复声明的,编译器也不会报错
变量多重赋值
如想要对 q 和 w 变量的值进行互换:
q := 10 w := 20 fmt.Println(q , " " , w) q, w = w, q fmt.Println(q , " " , w) 复制代码
得到的结果为:
10 20 20 10 复制代码
有了变量的多重赋值,就不用像 Java 中引入第三个变量,来进行两个变量值的互换。
匿名变量
- Go语言的函数可以返回多个值,而事实上我们并不是对所有的返回值都用得上,那么就可以使用匿名变量,用“_”下划线替换即可。
- 匿名变量不占用命名空间,不会分配内存
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。