变量不过是赋予程序可以操作的存储区的名称, Go中的每个变量都有特定的类型,该类型确定变量的内存大小,存储在内存中的值范围。
变量的名称可以由字母,数字和下划线字符组成,它必须以字母或下划线开头,大写和小写字母是不同的,因为Go区分大小写。根据上一章介绍的基本类型,将有以下基本变量类型-
Sr.No | Type & 描述 |
---|---|
1 | byte 通常是一个八位位组(一个字节)。这是字节类型。 |
2 | int 机器最自然的整数大小。 |
3 | float32 单精度浮点值。 |
Go编程语言还允许定义各种其他类型变量,如枚举,指针,数组,结构和联合,我们将在后续章节中进行讨论。在本章中,我们将仅关注基本变量类型
链接:https://www.learnfk.comhttps://www.learnfk.com/go/go-variables.html
来源:LearnFk无涯教程网
变量定义告诉编译器在哪里以及为变量创建多少存储空间,变量定义指定一种数据类型,并包含一个或多个该类型变量的列表,如下所示:
var variable_list optional_data_type;
在这里, optional_data_type 是有效的Go数据类型,包括byte,int,float32,complex64,boolean 或任何用户定义的对象等, variable_list 可以由一个或多个组成更多标识符名称,一些有效的声明显示如下:
var i, j, k int; var c, ch byte; var f, salary float32; d= 42;
语句" var i,j,k;" 声明并定义了变量i,j和k;它指示编译器创建名为int的i,j和k变量。
变量可以在其声明中进行初始化(分配初始值)。变量的类型由编译器根据传递给它的值自动判断。初始化程序由一个等号和一个常量表达式组成,如下所示:
variable_name=value;
如,
d=3, f=5; //d 和 f 的声明。这里 d 和 f 是 int
对于没有初始化程序的定义,所有其他变量的初始值为其数据类型的零值。
静态类型变量声明为编译器提供了保证,即有一个具有给定类型和名称的变量,以便编译器可以继续进行进一步的编译而无需该变量的完整细节。
package main import "fmt" func main() { var x float64 x=20.0 fmt.Println(x) fmt.Printf("x is of type %T\n", x) }
编译并执行上述代码后,将产生以下输出-
20 x is of type float64
动态类型变量声明要求编译器根据传递给它的值来解释变量的类型,编译器不需要变量就具有静态类型的必要条件。
请尝试以下示例,其中变量已声明为没有任何类型。
package main import "fmt" func main() { var x float64=20.0 y := 42 fmt.Println(x) fmt.Println(y) fmt.Printf("x is of type %T\n", x) fmt.Printf("y is of type %T\n", y) }
编译并执行上述代码后,将产生以下输出-
20 42 x is of type float64 y is of type int
可以使用类型推断一次性声明不同类型的变量。
package main import "fmt" func main() { var a, b, c=3, 4, "foo" fmt.Println(a) fmt.Println(b) fmt.Println(c) fmt.Printf("a is of type %T\n", a) fmt.Printf("b is of type %T\n", b) fmt.Printf("c is of type %T\n", c) }
编译并执行上述代码后,将产生以下输出-
3 4 foo a is of type int b is of type int c is of type string
Go中有两种表达式-
lvalue - 引用内存位置的表达式称为" lvalue"表达式
rvalue - 术语" rvalue"是指存储在内存中某个地址处的数据值。
变量是左值,因此可能出现在赋值的左侧,数字文字是右值,因此可能无法赋值并且不能出现在左侧。
以下语句有效-
x=20.0
以下语句无效。它将产生编译时错误-
10=20
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)