1.  
  2. 主页
  3.  / 
  4. Go语言视频教程课件
  5.  / 
  6. Go语言教程之变量与常量

Go语言教程之变量与常量

本文视频教程可从以下方式进入,感谢关注并对喜欢的视频一键三连。

可从 B 站搜索:”兰三石”。

或者直接点击此处 B 站视频传送门

变量

变量是什么?

变量在编程语言里的组成分为两个部分,一个是变量名,一个是变量值。我们可以通过变量名,拿到变量值。也可以通过变量名修改变量值。

变量是通过 “=”(赋值符号) 将 名 和 值,关联起来。

程序运行过程中的数据都是保存在内存中,我们想要在代码中操作某个数据时就需要去内存上找到这个变量,但是如果我们直接在代码中通过内存地址去操作变量的话,代码的可读性会非常差而且还容易出错,所以我们就利用变量将这个数据的内存地址保存起来,以后直接通过这个变量就能找到内存上对应的数据了。

命名规范

任何语言都会有一套自己的命名规范,然后有的时候,命名规范不是强制要求的,但是鉴于大家约定成俗的原因,还是建议遵守对应语言的命名规范。

大部分语言的命名规范,都是有一定的相同点的,都是要求下划线、字母、数字组成,首个字符不能是数字,并且不能使用语言预留的关键字,我这里说的是比较严谨的,主要是觉得可能其他我不知道的语言可能有其他方式的命名规范,目前我了解到的编程语言中,都是需要遵守这个命名规范的,像是Java、Python、Go、PHP等等。

Go 语言的预留关键字

# 关键字
    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

# 预留字
    常数: true  false  iota  nil
 
    类型: int  int8  int16  int32  int64  
         uint  uint8  uint16  uint32  uint64  uintptr
         float32  float64  complex128  complex64
         bool  byte  rune  string  error
 
    函数: make  len  cap  new  append  copy  close  delete
         complex  real  imag
         panic  recover

像是Python这种编程语言,就是建议使用下划线的方式进行命名的。

name_space
user_info
nick_name
number_list
...

而Go语言,虽然使用上面的命名规范也是没有问题的,但是Go语言,还是推荐使用纯字母的方式命名,也就是驼峰命名的方式。

驼峰有两种命名方法,分别是大驼峰和小驼峰

小驼峰式命名法(lower camel case): 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName。

大驼峰式命名法(upper camel case): 每一个单字的首字母都采用大写字母,例如:MyName

见名知意

我们在平时的开发过程中,应该避免使用泛化的命名,例如:tmp、x、m、n等等,虽然这种命名方式有一定的使用场景,但是还是推荐使用具体含义的名称。

比如一群学生的命名,studentList;是否是一个学生,isStudent。

名称不要太长,虽然要做到见名知意,但是也不要使用整个句子,一般两三个单词即可。

最好是可以有对应的前后缀分类,例如数字相关的,numberMin、numberMax;时间相关的,createTime、updateTime。

变量类型

变量都有对应的类型,不同的类型的变量,都有不同的作用,同时从编程语言出现至今,变量的类型,基本上已经定型,常见的变量类型有:表示数字的整型、表示小数的浮点类型、表示是否的布尔类型、字符串类型等等。

本次先简单了变量的类型,后面会详细介绍Go语言中的各种数据类型。

变量的声明

Go语言中的变量是需要声明才能使用的,同一作用域内相同名字的变量不支持重复声明。

需注意Go语言的变量声明后必须使用。

var

Go语言中使用 var来声明变量。

// 声明单个变量
var name string
var age int

// 声明多个变量
var (
    name string
    age int
)

Go语言在声明变量的时候,会自动对变量对应的值进行初始化操作。

每个变量会被初始化成其类型的默认值,例如: 整型和浮点型变量的默认值为0。 字符串变量的默认值为空字符串。 布尔型变量默认为false。 切片、函数、指针变量的默认为nil

当然我们也可在声明变量的时候为其指定初始值。变量初始化的标准格式如下:

var username string = "lanyulei"
var name string = "三石"

也可以一次性初始化多个值。

var username, name string = "lanyulei", "三石"

我们在初始化变量的时候,也可以不添加变量的类型,Go语言的在编译的时候,就会根据赋值符号右边的值进行推导,完成变量的初始化。

var username, age = "lanyulei", 18

短变量声明

短变量声明,是通过:=来进行变量的声明,不需要提供数据类型,不需要使用var关键字,短变量声明,只能在函数内部。

func getUsername() {
    username := "lanyulei"
}

匿名变量

当你在函数多个值当时候,但是又不需要其中一个值当时候,就可以使用匿名变量,将这个变量遗弃,也就是不接受。

匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。

func getUserinfo() (string, string) {
    return "lanyulei", "三石"
}

func main() {
    username, _ := getUserinfo()  // 这里我们就使用匿名变量遗弃第二个返回值。
    fmt.Println(username)
}

变量的创建,需要注意下面的几点:

  • 函数外的每个语句都必须以关键字开始(var、const、func等)。
  • :=不能使用在函数外。
  • _多用于占位,表示忽略值。

变量作用域

变量作用域顾名思义,就是变量的有效的范围,可以分为全局作用域和局部作用域,也可以称之为全局变量和局部变量。

局部变量则表示在一定范围内有效,例如函数那声明的变量,就仅能在函数内使用。相同范围内,局部变量的优先级要高于全局变量。

全局变量表示全局有效,在函数以外进行变量声明。同一个包内的任何函数都可以直接调用。

package main

import "fmt"

var numberValue int = 1

func local() {
    var numberValue int = 2
    fmt.Println("局部:", numberValue)
}

func global()  {
    fmt.Println("全局:", numberValue)
}

func main() {
    local()
    global()
}

常量

常量其实跟变量是非常相似的,只不过声明的关键字从var变成了const,并且常量在声明的时候,必须赋值。

常量还有一个特点,就是在程序的运行期间,它对应的值是不会变化的。因此常量更适合配置全局变量。

变量因为在程序运行过程中是可以改变的,因此在复杂系统中,可能会因为变量的改变而变的不可追溯,因此变量不太适合作为全局变量使用。

// 单个常量声明
const pi = 3.1415926

// 多个常量声明
const (
    pi = 3.1415926
    ai = 7758521
)

const同时声明多个常量时,如果省略了值则表示和上面一行的值相同。

// 常量n1、n2、n3的值都是1。
const (
    n1 = 1
    n2
    n3
)
这篇文章对您有用吗?

我们要如何帮助您?

发表评论

您的电子邮箱地址不会被公开。