ToB企服应用市场:ToB评测及商务社交产业平台

标题: Go 变量 [打印本页]

作者: 王海鱼    时间: 2023-8-8 21:16
标题: Go 变量
在Go中,有不同的变量类型,例如:
声明(创建)变量

在Go中,有两种声明变量的方法:
使用var关键字:

使用var关键字,后跟变量名称和类型:
语法
var variablename type = value
注意:您始终必须指定type或value(或两者)。
使用:=符号

使用:=符号,后跟变量值:
语法
variablename := value
注意:在这种情况下,变量的类型是从值中推断的(这意味着编译器根据值决定变量的类型)。
注意:无法使用:=声明变量,而不将值分配给它。
具有初始值的变量声明

如果从一开始就知道变量的值,则可以在一行中声明变量并为其赋值:
示例
  1. package main
  2. import ("fmt")
  3. func main() {
  4.   var student1 string = "John" //type is string
  5.   var student2 = "Jane" //type is inferred
  6.   x := 2 //type is inferred
  7.   fmt.Println(student1)
  8.   fmt.Println(student2)
  9.   fmt.Println(x)
  10. }
复制代码
注意:变量student2x的变量类型是从其值推断的。
没有初始值的变量声明

在Go中,所有变量都已初始化。因此,如果声明变量而没有初始值,则其值将设置为其类型的默认值:
示例
  1. package main
  2. import ("fmt")
  3. func main() {
  4.   var a string
  5.   var b int
  6.   var c bool
  7.   fmt.Println(a)
  8.   fmt.Println(b)
  9.   fmt.Println(c)
  10. }
复制代码
示例解释
在此示例中有3个变量:
这些变量已声明,但未分配初始值。
通过运行代码,我们可以看到它们已经具有其各自类型的默认值:
声明后的值分配

可以在声明变量后将值分配给变量。这对于值最初未知的情况很有帮助。
示例
  1. package main
  2. import ("fmt")
  3. func main() {
  4.   var student1 string
  5.   student1 = "John"
  6.   fmt.Println(student1)
  7. }
复制代码
注意:无法使用:=声明变量,而不将值分配给它。
var和 := 之间的区别

var和:=之间存在一些小差异:
var:=可以在函数内部和外部使用仅可在函数内部使用可以分别进行变量声明和值分配变量声明和值分配不能分别进行(必须在同一行中完成)示例
此示例显示在函数外部使用var关键字声明变量:
  1. package main
  2. import ("fmt")
  3. var a int
  4. var b int = 2
  5. var c = 3
  6. func main() {
  7.   a = 1
  8.   fmt.Println(a)
  9.   fmt.Println(b)
  10.   fmt.Println(c)
  11. }
复制代码
示例
由于:=在函数外使用,因此运行程序会导致错误。
  1. package main
  2. import ("fmt")
  3. a := 1
  4. func main() {
  5.   fmt.Println(a)
  6. }
复制代码
结果:
./prog.go:5:1: syntax error: non-declaration statement outside function body
Go多变量声明

在Go中,可以在同一行中声明多个变量。
示例
此示例显示如何在同一行中声明多个变量:
  1. package main
  2. import ("fmt")
  3. func main() {
  4.   var a, b, c, d int = 1, 3, 5, 7
  5.   fmt.Println(a)
  6.   fmt.Println(b)
  7.   fmt.Println(c)
  8.   fmt.Println(d)
  9. }
复制代码
注意: 如果使用type关键字,则每行只能声明一个类型的变量。
如果未指定type关键字,则可以在同一行中声明不同类型的变量:
示例
  1. package main
  2. import ("fmt")
  3. func main() {
  4.   var a, b = 6, "Hello"
  5.   c, d := 7, "World!"
  6.   fmt.Println(a)
  7.   fmt.Println(b)
  8.   fmt.Println(c)
  9.   fmt.Println(d)
  10. }
复制代码
在块中声明Go变量

多个变量声明也可以组合到块中以增加可读性:
示例
  1. package main
  2. import ("fmt")
  3. func main() {
  4.    var (
  5.      a int
  6.      b int = 1
  7.      c string = "hello"
  8.    )
  9.   fmt.Println(a)
  10.   fmt.Println(b)
  11.   fmt.Println(c)
  12. }
复制代码
Go变量命名规则

变量可以有简短的名称(如x和y)或更描述性的名称(age,price,carname等)。
Go变量命名规则:
多字变量名称

具有多个单词的变量名称可能难以阅读。
有几种技术可用于使它们更易于阅读:
驼峰命名法

每个单词,除了第一个单词以外,都以大写字母开头:
myVariableName = "John"
帕斯卡命名法

每个单词以大写字母开头:
MyVariableName = "John"
蛇形命名法

每个单词之间用下划线字符分隔:
my_variable_name = "John"
最后

为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:
公众号搜索Let us Coding知乎开源中国CSDN思否掘金InfoQ简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区
看完如果觉得有帮助,欢迎点赞、收藏关注

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4