『Go基础』第7节 变量

1. 什么是变量?

我们应该怎么去理解变量? 在这里我要举一个例子:

大家应该都知道王者荣耀这个游戏. 当我们在玩王者荣耀的时候, 我们操控的英雄的血量是不断变化的, 这个血量是存在内存中的. 那么这个血量就是一个变量.

在程序运行的过程中, 其值可以改变的量, 我们就称为变量.

通过上面例子可以发现:

  • 变量是存储在内存中的
  • 变量是可以改变的

我们说变量是存储在内存中, 那么内存又是什么呢?

内存是一个连续的数据集合, 每一个内存存储区域都有一个唯一的地址标识, 称为内存地址. 就好比我们的身份证一样, 每个人都有一个唯一的身份证.

我们知道了变量是什么, 那么在Go语言中, 变量应该如何定义呢?

2. 变量

2.1 变量的定义

Go最基本的变量定义方式是使用 var 关键字, 其基本格式为:

var 变量名 数据类型

变量的声明以关键字var 开头, 行尾不需要分号

比如说, 我们定义一个名称为 hp , 类型为 int 的变量:

var hp int  // int表示为整型

我们来声明一个变量并打印一下看看:

package main

import "fmt"

func main() {
    // 使用 var 定义一个变量, 注意: 变量类型要放在变量名后面
    var hp int
    fmt.Println(hp)
}

// 结果:
0

奇怪? 我都没有给hp一个具体的值, 怎么打印出来为0呢?

其实, 这是Go的一个特点: 当我们在声明一个变量的时候, 如果没有初始值, Go会给其一个对应类型的默认值.

既然这样, 我们就给hp一个值吧.

package main

import "fmt"

func main() {
    // 使用 var 定义一个变量, 注意: 变量类型要放在变量名后面
    var hp int
    hp = 100  // 赋值操作
    fmt.Println(hp)
}

// 结果:
100

当然了, 我们也可以在声明的时候直接给 hp 一个值:

var hp int = 100  // 定义变量并初始化值

如果我们仅仅定义一个变量而没有去使用它, 那么Go就会报错.

2.2 定义多个变量

// 定义两个个类型都是int的变量
var hp, mp int

既然可以同时定义多个变量, 那么也能同时初始化多个变量

/*定义两个类型都是"int"的变量, 并且分别初始化为相应的值
hp为100, mp为260
*/
var hp, mp int = 100, 260

2.3 自动推导类型

有没有发现当我们定义变量时有一些繁琐, 需要写类型 , Go允许我们不写 类型 , 它会自动帮我们推导出数据对应的类型:

var hp, mp = 100, 260

有人说了, 那个 var 能不能也去了, 每次都要写, 好麻烦的. 没问题, Go也允许你:

/*定义两个变量,它们分别初始化为相应的值
hp为100, mp为260
编译器会根据初始化的值自动推导出相应的类型
*/
hp, mp := 100, 260  // 注意这里有个冒号 :

现在是不是感觉非常简洁了. := 这个符号直接代替了变量的定义及赋值.

hp := 100
// 等价于下面两行
var hp int
hp = 100

不过它有一个限制, 那就是它只能用在函数内部; 在函数外部使用则会无法编译通过, 所以一般用var方式来定义全局变量.

2.4 匿名变量

_ (下划线)为匿名变量, 它会丢弃对应数据不进行处理. 匿名变量配合函数的返回值使用才有价值, 目前大家先知道其语法即可.

在下面的例子中, 我们将值 2 赋予 b , 丢弃 3

_, b := 3, 2

匿名变量不占用命名空间, 不会分配内存.

匿名变量与匿名变量之间也不会因为多次声明而无法使用.

2.5 变量命名规范

  1. 变量只能由字母、数字、下划线组成。
  2. 不能以数字开头。
  3. 不能是Go中的关键字及保留字
  4. 大小写区分,a := 1A := 1是两个变量。

以上要求是必须满足的,下面的要求要尽量做到

  1. 变量名要有描述性,要简洁、易读,不宜过长。
  2. 变量名不能使用中文以及拼音。
  3. 推荐使用的变量名:
    • 下划线:my_name = ‘Conan‘
    • 驼峰体:MyName = ‘Conan‘

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

Go语言中的37个保留字:

Constants:    true  false  iota  nil
    Types:    int  int8  int16  int32  int64
              uint  uint8  uint16  uint32  uint64  uintptr
              float32  float64  complex128  complex64
              bool  byte  rune  string  error
Functions:    make  len  cap  new  append  copy  close  delete
              complex  real  imag
              panic  recover

原文地址:https://www.cnblogs.com/BlameKidd/p/11620189.html

时间: 2024-07-31 11:49:54

『Go基础』第7节 变量的相关文章

『Python基础』第4节:基础数据类型初识

本节只是对基础数据类型做个简单介绍, 详情会在之后慢慢介绍 什么是数据类型? 我们人类可以分清数字与字符串的区别, 可是计算机不能. 虽然计算机很强大, 但在某种程度上又很傻, 除非你明确告诉它数字与字符串的区别. 因此, 在每个编程语言中都有叫 数据类型 的东西, 其实就是对常用的数据类型进行了明确的划分. Python中常用的数据类型有很多种, 本节只介绍3中: 数字.字符串.布尔类型 整数类型 - int 在32位机器上,整数的位数为32位,取值范围为-231-231-1,即-214748

『Go基础』第8节 格式化输出

输出就是将数据信息打印到电脑屏幕上. 本节我们就来学习一下Go语言中的三种输出方式: Print().Println().Printf(). 1.Print() Print()主要的一个特点就是打印数据时不换行. package main import "fmt" func main() { a, b := 10, 20 // 输出: Print, 打印数据时不带换行 fmt.Print(a) fmt.Print(b) } // 结果: 1020 2. Println() Printl

『Go基础』第5节 第一个Go程序

本节我们来学习写一个最简单的Go程序: 打印 Hello Go. 第一个Go程序, 只要跟着做, 留下个印象就可以. 用Goland创建一个 hello_go.go 文件(后缀为 .go ). 文件内容是 package main import "fmt" func main() { fmt.Println("Hello Go") } 使用快捷键 Ctrl + Shift + F10 运行程序, 结果如下: 完美! 现在您已经学会怎样运行了一个Go程序了. 原文地址

『Go基础』第6节 注释

在上一节中, 我们学会了怎样写一个 Hello Go . 但是, 大家有可能还没有明白为什么那么写, 下面我们通过注释来了解一下. 注释的重要性不再过多赘述, 一段不写注释的代码读起来实在难受. 那么Go语言的注释应该怎么写呢? 1. 单行注释 单行注释就是对代码中的一行进行注释. 用 // 表示 单行注释: // 注释的内容 2. 多行注释 多行注释就是对代码中两行及以上的代码进行注释. 用 /* */ 表示 多行注释: /* 注释 的 内容*/ 了解了注释的内容之后, 我们通过注释对上一节代

『Python基础』第5节:条件控制

if 语句的使用 单分支 if 条件: 满足条件后要执行的代码 例如: if 2 < 3: print(222) print(333) 每个条件后面都要使用冒号 :, 表示接下来是满足条件后要执行的语句块 在Python中没有 switch - case 语句 双分支 if 条件: 满足条件要执行的代码 else: 不满足条件就执行这里的代码 例如: age = 18 if age >= 18: print('恭喜你, 成年了') else: print('小屁孩儿') 缩进 你会发现, 在上

『Python基础』第6节:流程控制之while循环

在生活中经常遇到循环的事情, 比如循环列表播放歌曲等. 在Python中, 也有循环, 就是其流程控制语句while. 1. 基本循环 while 条件: 循环体 # 如果条件为真, 那么就执行循环体 # 如果条件为假, 那么就不执行循环体. 举个例子: while True: print('你不要担心') print('青春') print('有一天') 上面的代码有一个问题就是: 没有停止的时候. 只要电脑不死机, 就会一直循环下去. 那么具体的它是怎么执行的呢? 看下面这张图. 那么应该如

『Go基础』第4节 VS Code配置Go语言开发环境

VS Code 是微软开源的一款编辑器, 本文主要介绍如何使用VS Code搭建Go语言的开发环境. 下载与安装VS Code 官方下载地址: https://code.visualstudio.com/Download 双击下载好的安装文件, 安装即可 安装中文简体插件 点击左侧菜单栏最后一项 管理扩展, 在 搜索框 中输入 chinese, 选中结果列表第一项, 点击 install 安装. 安装完毕后右下角会提示 重启VS Code, 重启之后VS Code就显示中文了. 安装Go开发环境

萌新向Python数据分析及数据挖掘 第一章 Python基础 第一节 python安装以及环境搭建 第二节 变量和简单的数据类型

本文将参考<Python编程 从入门到实践>的讲述顺序和例子,加上自己的理解,让大家快速了解Python的基础用法,并将拓展内容的链接添加在相关内容之后,方便大家阅读. 好了!我们开始第一章的学习. 第一章 Python基础 第一节 Python安装以及环境搭建 Python的安装和环境变量的配置通过百度查询即可解决,这里不作赘述. IDE的选择:因为后期需要用来做数据分析,所以直接安装Anaconda会是一个不错的选择. Anaconda详细安装使用教程 https://blog.csdn.

『安全工具』注入神器SQLMAP

原文:『安全工具』注入神器SQLMAP Pic by Baidu 0x 00 前言 正是SQLMAP这种神器的存在,SQL注入简直Easy到根本停不下来.... PS:国内类似软件也有阿D,明小子,挖掘机,当你用过他们之后你才会发现SQLMap才是绝对的注入神器 0x 01 注入原理 *****************************************开始分割线***************************************** 时间原因,这段内容就先不写了 就是因为