写点什么

Go 变量

作者:小万哥
  • 2023-08-08
    广东
  • 本文字数:1806 字

    阅读完需:约 6 分钟

Go 变量

在 Go 中,有不同的变量类型,例如:


  • int 存储整数(整数),例如 123 或-123

  • float32 存储浮点数字,带小数,例如 19.99 或-19.99

  • string - 存储文本,例如“ Hello World”。字符串值用双引号括起来

  • bool 存储具有两个状态的值:true 或 false

声明(创建)变量

在 Go 中,有两种声明变量的方法:

使用var关键字:

使用var关键字,后跟变量名称和类型:


语法


var variablename type = value


注意:您始终必须指定typevalue(或两者)。

使用:=符号

使用:=符号,后跟变量值:


语法


variablename := value


注意:在这种情况下,变量的类型是从值中推断的(这意味着编译器根据值决定变量的类型)。


注意:无法使用:=声明变量,而不将值分配给它。

具有初始值的变量声明

如果从一开始就知道变量的值,则可以在一行中声明变量并为其赋值:


示例


package mainimport ("fmt")
func main() { var student1 string = "John" //type is string var student2 = "Jane" //type is inferred x := 2 //type is inferred
fmt.Println(student1) fmt.Println(student2) fmt.Println(x)}
复制代码


注意:变量**student2x****的变量类型是从其值推断**的。

没有初始值的变量声明

在 Go 中,所有变量都已初始化。因此,如果声明变量而没有初始值,则其值将设置为其类型的默认值:


示例


package mainimport ("fmt")
func main() { var a string var b int var c bool
fmt.Println(a) fmt.Println(b) fmt.Println(c)}
复制代码


示例解释


在此示例中有 3 个变量:


  • a

  • b

  • c


这些变量已声明,但未分配初始值。


通过运行代码,我们可以看到它们已经具有其各自类型的默认值:


  • a""

  • b0

  • cfalse

声明后的值分配

可以在声明变量后将值分配给变量。这对于值最初未知的情况很有帮助。


示例


package mainimport ("fmt")
func main() { var student1 string student1 = "John" fmt.Println(student1)}
复制代码


注意:无法使用:=声明变量,而不将值分配给它。

var 和 := 之间的区别

var:=之间存在一些小差异:



示例


此示例显示在函数外部使用var关键字声明变量:


package mainimport ("fmt")
var a intvar b int = 2var c = 3
func main() { a = 1 fmt.Println(a) fmt.Println(b) fmt.Println(c)}
复制代码


示例


由于:=在函数外使用,因此运行程序会导致错误。


package mainimport ("fmt")
a := 1
func main() { fmt.Println(a)}
复制代码


结果:


./prog.go:5:1: syntax error: non-declaration statement outside function body

Go 多变量声明

在 Go 中,可以在同一行中声明多个变量。


示例


此示例显示如何在同一行中声明多个变量:


package mainimport ("fmt")
func main() { var a, b, c, d int = 1, 3, 5, 7
fmt.Println(a) fmt.Println(b) fmt.Println(c) fmt.Println(d)}
复制代码


注意: 如果使用type关键字,则每行只能声明一个类型的变量。


如果未指定type关键字,则可以在同一行中声明不同类型的变量:


示例


package mainimport ("fmt")
func main() { var a, b = 6, "Hello" c, d := 7, "World!"
fmt.Println(a) fmt.Println(b) fmt.Println(c) fmt.Println(d)}
复制代码

在块中声明 Go 变量

多个变量声明也可以组合到块中以增加可读性:


示例


package mainimport ("fmt")
func main() { var ( a int b int = 1 c string = "hello" )
fmt.Println(a) fmt.Println(b) fmt.Println(c)}
复制代码

Go 变量命名规则

变量可以有简短的名称(如 x 和 y)或更描述性的名称(age,price,carname 等)。


Go 变量命名规则:


  • 变量名称必须以字母或下划线字符(_)开头

  • 变量名称不能以数字开头

  • 变量名称只能包含字母数字字符和下划线(a-z,A-Z0-9_

  • 变量名称区分大小写(age,Age 和 AGE 是三个不同的变量)

  • 变量名称的长度没有限制

  • 变量名称不能包含空格

  • 变量名称不能是任何 Go 关键字

多字变量名称

具有多个单词的变量名称可能难以阅读。


有几种技术可用于使它们更易于阅读:

驼峰命名法

每个单词,除了第一个单词以外,都以大写字母开头:


myVariableName = "John"

帕斯卡命名法

每个单词以大写字母开头:


MyVariableName = "John"

蛇形命名法

每个单词之间用下划线字符分隔:


my_variable_name = "John"

最后

为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:


公众号搜索Let us Coding知乎开源中国CSDN思否掘金InfoQ简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区


看完如果觉得有帮助,欢迎点赞、收藏关注

发布于: 刚刚阅读数: 5
用户头像

小万哥

关注

代码如人生 2023-02-09 加入

编程爱好者

评论

发布
暂无评论
Go 变量_Go_小万哥_InfoQ写作社区