Go语言从入门到入土:Go 变量(一)

290 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情

本文主要介绍下Golang语言的变量,让大家对go语言的变量有一个大概的了解。

Go变量的使用

1.定义变量
2.变量赋值
3.使用变量

第1种方式

go语言变量的定义语法和Java有点区别,定义变量需要先写变量名,再把变量类型写在变量名后:

var 变量名 变量类型

这种声明情况下,go会根据变量类型给这个变量一个默认值,具体不同类型对应的默认值会在后面详细介绍变量类型时说明。

var name string 
var age int

name = "waman"
age = 35

fmt.Println("name = ",name," age = ",age)

第2种方式

go也支持声明变量的同时直接赋值,即变量初始化,在这种情况下,一般会省略变量类型,交给go自行进行类型推导。

var 变量名 = 初始值

或者

变量名 := 初始值

:= 是声明变量的简略写法。但要注意:=左边的值不能是已经声明过的,否则会编译❌,还有这种写法只支持在函数体内使用,如果想声明一个全局变量,则必须使用var关键词。

var name = "waman" 
age := 35

fmt.Println("name = ",name," age = ",age)

补充:go支持多变量声明

在编程中,我们有些时候可能希望一次声明多个变量,比如在接受函数返回值的时候,有时我们希望可以传回多个类型的多个变量给调用函数,在Java中如果想要严格按类型实现的话,可能只能定义一个类用对象传递了,但go天然支持多类型变量声明和函数多参数传递。

//var name, age = "waman", 35
name, age := "waman", 35
fmt.Println("name = ", name, "age = ", age)

下面用打开文件作为🌰给大家简单看一下在函数调用时多变量声明的使用:

file, err := os.Open("test.txt")
if err != nil {
   fmt.Println("读取文件出错,err = ", err)
} else {
   fmt.Println(file)
   err = file.Close()
   if err != nil {
      fmt.Println("关闭文件出错,err = ", err)
   }
}

因为test.txt是随便写的文件名,实际环境中并不存在,所以程序跑起来的结果如下图:

image.png

ps

  1. Go语言有个强制性的规定,变量一旦声明必须使用,如果你在你的程序里只声明(或初始化)了一个变量,但后面却没有使用它,会编译错误。
  2. 变量在同一个作用域里不能同名
  3. 变量的类型和赋值的类型需要一致,如果你已经声明一个变量的类型为int,则你在后续使用该变量的过程中不能将不同类型的值赋给该变量。

预告

经过了上面的学习,相信大家对go的变量有了一个基础的认识,接下来将会针对变量的数据类型进行详细的介绍和解释。希望大家多多关注鸭~