Golang教程 - 变量入门指南及示例

72 阅读4分钟

在这篇博文中,它涵盖了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