go 变量大写_go语言之变量详解

go语言之变量

1.0、变量初识

变量,其实就香芋给某个值设置一个昵称,此昵称代指当前值。

在Go中变量声明的基本格式为:var 变量名 类型 = 值,例如:

// 声明一个字符串类型的变量name,值为'qzk'

var name string = "qzk"

// 声明一个整型类型的变量 age, 值为18

var age int = 18

1.1. 变量简写

为了能让变量的声明更方便,Go 还提供了一些声明变量的简化方式

省略类型,格式为 var 变量名 = 值

var name = "qzk"

var age = 18

// 再给变量赋值时已知值的类型,所以Go编译器可以自动检测到类型,故可简化编写。

省略var 关键字,格式为:变量名 := 值(推荐这样使用)

name := "qzk"

age := 18

上述的两种简化编写的方式必须是直接赋值操作,即:直接将赋值值给变量,否则无法简化。例如:先声明再赋值时就不能使用简化方式编写

// 先, 声明变量

var name = string

// 给变量赋值

name = 'qzk'

注意:如果变量,只声明不赋值,Go内部其实会给变量默认设置值

// int 默认值为 0

// float 默认值为 0.0

// bool 默认值为 false

// string 默认值为 空字符串

// 指针 默认值为 nil

....

1.2 变量名要求

对于变量名有一下几个要求和建议:

要求:

变量名由 字母、数字、下划线组成,且首个字符不能为数字。

不能使用Go内置的25个关键字

break、default、func、interface、select、case、defer、go、map、struct、chan、else、goto、package、switch、const、fallthrough、if、range、type、continue、for、import、return、var

建议:

变量的命名规则遵循驼峰命名规则,即首个单词小写,每个新单词的首字母大写,例如:numShips 和 startDate

见名知意,通过变量名就可以知道变量所代指的值,例如:name、email

1.3 全局和局部变量

根据变量所在位置不同, 变量有全局和局部变量之分

1.3.1 全局变量

package main

import "fmt"

// 声明全局变量

var country string = "中国"

// 亦可使用

// var country = "中国"

// 不可使用

// country := "中国"

func main(){

fmt.Println(country)

country = "China"

fmt.Println(country)

}

特别提示:Go 中的 全局变量比较特殊,

如果全局变量首字母小写,则只能别当前包中的go文件使用,外部无法使用;

如果首字母大写,则任意文件都可以使用全局变量

可简单理解为:首字母大写表示共有, 首字母小写表示私有(当前包的go文件所有)

1.3.2 局部变量

Go中的变量有作用域之分,每个大括号就是一个作用域,每个作用域中都可以定义相关的局部变量。

package main

import (

"fmt"

)

func main(){

// 声明局部变量,再当前函数可用

var name string = "qzk"

fmt.Println(name)

if true {

// 声明局部变量, 再当前if中可用

var age = 18

fmt.Println(age)

}

// 下面的语句就会报错,因为age 再if括号的作用域中

// fmt.Println(age)

}

1.4 因式分解

在定义多个变量时候, 可以用过饮食分解的方式进行简化代码。

package main

import "fmt"

/*

var name = "qzk"

var age = 18

var gender string

*/

// 在全局使用

var (

name1 = "qzk"

age = 18

gender string

)

func main(){

fmt.Println(name1)

fmt.Println(age)

fmt.Println(gender)

// 在局部使用

var (

x1 = 123

x2 = 34

)

fmt.Println(x1)

fmt.Println(x2)

}

你可能感兴趣的:(go,变量大写)