在Golang中,变量临时保存数据以供使用。 golang变量声明需要四件事:声明golang变量的声明,变量的名称,它可以保存的数据类型以及其初始值。幸运的是,其中一些部分是可选的,但这也意味着在golang中定义变量的方法不止一种。以下是有关golang变量的一些重要信息:
main()
function get used somewhere in your program.{}
may be accessed anywhere within the block. 的 opening curly brace {
introduces a new scope that ends with a closing brace }
. Inner blocks can access 变种iables within outer blocks. Outer blocks cannot access 变种iables within inner blocks.关键字 变种 用于声明变量,后跟所需的名称和变量将持有的值的类型。
您可以声明变量而不分配值,然后再分配值。
package main
import "fmt"
func main() {
var i int
var s string
i = 10
s = "Canada"
fmt.Println(i)
fmt.Println(s)
}
执行上述语句后,变量i将保留值10,变量s将保留值Canada。
值的赋值与变量的初始化一起发生。声明变量并稍后为其分配值同样有效。
package main
import "fmt"
func main() {
var i int = 10
var s string = "Canada"
fmt.Println(i)
fmt.Println(s)
}
整数字面量10分配给变量i,字符串字面量Canada分配给变量s。
在声明时为变量分配值时,可以从声明中省略变量类型。分配给变量的值的类型将用作该变量的类型。
package main
import (
"fmt"
"reflect"
)
func main() {
var i = 10
var s = "Canada"
fmt.Println(reflect.TypeOf(i))
fmt.Println(reflect.TypeOf(s))
}
的 := 短变量赋值运算符指示正在使用短变量声明。无需使用var关键字或声明变量类型。
package main
import (
"fmt"
"reflect"
)
func main() {
name := "John Doe"
fmt.Println(reflect.TypeOf(name))
}
John Doe字符串文字将分配给name。
高朗允许您将值赋给一行中的多个变量。
package main
import (
"fmt"
)
func main() {
var fname, lname string = "John", "Doe"
m, n, o := 1, 2, 3
item, price := "Mobile", 2000
fmt.Println(fname + lname)
fmt.Println(m + n + o)
fmt.Println(item, "-", price)
}
高朗使用基于代码块的词法作用域来确定变量的范围。内部块可以访问其外部块定义的变量,但是外部块不能访问内部块定义的变量。
package main
import (
"fmt"
)
var s = "Japan"
func main() {
fmt.Println(s)
x := true
if x {
y := 1
if x != false {
fmt.Println(s)
fmt.Println(x)
fmt.Println(y)
}
}
fmt.Println(x)
}
以下是命名Golang变量的以下规则:
如果您在声明变量时未为其赋值,Golang会自动将默认值(或零值)绑定到该变量。
package main
import "fmt"
func main() {
var quantity float32
fmt.Println(quantity)
var price int16
fmt.Println(price)
var product string
fmt.Println(product)
var inStock bool
fmt.Println(inStock)
}
编译并执行上述代码后,将产生以下结果-
0
0
false
变量声明可以分组在一起,以提高可读性和代码质量。
package main
import "fmt"
var (
product = "Mobile"
quantity = 50
price = 50.50
inStock = true
)
func main() {
fmt.Println(quantity)
fmt.Println(price)
fmt.Println(product)
fmt.Println(inStock)
}