在这篇博文中,它涵盖了Golang教程中的变量指南和实例
Golang变量
变量在go语言中的用法与其他编程语言如java相同。变量是为内存中保存数值的空间所指定的名称。 变量有不同的类型。基于每种类型,内存的大小将被容纳。
变量名称可以用字母、数字和下划线字符来命名。Go语言是区分大小写的,所以大写和小写的名字是不同的。Go语言中的变量是用var关键字声明的。在使用任何变量之前,你需要首先声明它。
变量声明
变量可以用var关键字来声明,一旦变量被声明,编译器就会根据变量的类型来分配内存。变量声明包含三个部分 1、var关键字 2、变量名称 3、变量类型
var variablename(s) variableType
可以是单个变量,也可以是多个变量,类型是预定义的内置类型或自定义类型。内置类型可以是字节、int、float32和字符串。以下是各种方式的变量声明示例
初始化变量
它可以被声明和初始化为数值。这可以通过多种方式进行
下面的例子解释了不同类型的转换
package main
import (
"fmt"
)
func main() {
m := 42
n := float64(2.0)
var o float64 = float64(25.2)
fmt.Println(m)
fmt.Println(n)
fmt.Println(o)
}
输出是
42
2
25.2
多变量声明
这里可以在一行中声明多个相同类型的变量
var a,b,c int;
var (
m = 1
n = 20
o = 3
)
简短的变量声明
变量可以用初始值来声明和分配。在一行中可以声明多个变量,可读性提高,代码行数减少
package main
import "fmt"
func main() {
var m, n int = 10, 20
fmt.Println(m, n) // 10 20
}
全局范围变量
在功能块之外和包级上声明的变量。这个变量可以在程序中声明的所有函数中被访问。只要程序在运行,这些变量就可以存在
package main
import "fmt"
//Global Variables Declaration
var globalVariable="Hello";
func main() {
fmt.Println(globalVariable);
}
并且上述代码的输出是
Hello
本地范围变量
在一个函数或代码块内声明的变量被称为局部变量。这些变量不能在函数之外被访问
package main
import "fmt"
func main() {
//Local Variables Declaration
var localVariable="this is test variable";
fmt.Println(localVariable);
}
而上述代码的输出结果是
this is test variable
变量的默认值
当变量的初始值为0时,变量将被分配一个缺省值,如Int、Float等数字类型,布尔类型为false。
package main
import "fmt"
func main() {
var intVariable int32
var floatVariable float32
var booleanVariable bool
var strVariable string
fmt.Printf("%v %v %v %q\n", intVariable, floatVariable, booleanVariable, strVariable) // output 0 0 false ""
}
类型推理
类型推理是指当变量被声明而没有变量的类型时。变量类型可以从值的右侧推导出类型。推理可以应用于变量和常量 下面的例子描述了使用=和:=运算符的变量表达式
package main
import "fmt"
func main() {
var k int
l:=k
var m = 42
var n = false
p:=3.2 // constant
fmt.Printf("variable k datatype is %T\n", k)
fmt.Printf("variable l datatype is %T\n", l)
fmt.Printf("variable m datatype is %T\n", m)
fmt.Printf("variable n datatype is %T\n", n)
fmt.Printf("variable p datatype is %T\n", p)
}
上述程序代码的输出是
variable k datatype is int
variable l datatype is int
variable m datatype is int
variable n datatype is bool
variable p datatype is float64
常量声明
常量和变量一样,一旦赋值就不能改变其值,而变量是可以改变的。常量可以用:=语法来声明。常量可以应用于所有类型的变量,如布尔型、字符串和数字型。
package main
import "fmt"
func main() {
const str = "kiran"
fmt.Println("Hi", str) // Hi kiran
const booleanValue = true
fmt.Println(booleanValue) // true
}
golang中的变量可以使用&变量名--安培尔变量来引用。
- 变量是一个变量的指针,打印出该变量的内存位置。
- *&变量是一个变量在内存位置的值。
这个例子打印了一个变量的指针
package main
import "fmt"
func main() {
var m int
fmt.Println("memory location for m :", &m, "variable value is ", *&m)
n:= 15
fmt.Println("memory location for n :", &n, "variable value is ", *&n)
}
上述代码的输出是
memory location for m : 0x416020 variable value is 0
memory location for n : 0x416024 variable value is 15