《快学 Go 语言》第 2 课 —— 变量什么的最讨厌了

  • 时间:
  • 浏览:0
  • 来源:大发5分11选5_大发5分11选5官网

注意到赋值的等号变成了 :=,它表示变量的「自动类型推导 + 赋值」。

// 字节类型var j byte = 'a'

import "fmt"

unicode字符类型 rune

更进一步,底下的变量定义还能非要再一次错综复杂,添加 var 关键字。

import "fmt"



可能性普通的变量是二个 多 储物箱,如此 指针变量什么都曾经储物箱,三种储物箱里存放了普通变量所在储物箱的钥匙。通太满级指针来读取变量值就好比在玩二个 多 解密游戏。

可能性二个 多 变量有点痛 要,建议使用第三种显式声明类型的最好的依据 来定义,比如全局变量的定义就比较偏好第三种定义最好的依据 。可能性要使用二个 多 不如此 重要的局部变量,就能非要使用第三种。比如循环下标变量

可能性全局变量的首字母大写,如此 它什么都公开的全局变量。可能性全局变量的首字母小写,如此 它什么都内部的全局变量。内部的全局变量非要当前包内的代码能非要访问,外面包的代码是非要看见的。

Go 语言还提供了常量关键字 const,用于定义常量。常量能非却说全局常量要能非却说局部常量。你非要非要修改常量,而且编译器会抱怨。常量时要初始化,可能性它无法二次赋值。全局常量的大小写规则和变量是一致的。

那第二种最好的依据 能非要用在底下的循环下标中呢,答案是非要非要,你无法将 var 关键字直接写进循环条件中的初始化的话中,而时要提前声明变量,像下面曾经,这时就很明显不如简写的形式了

import "fmt"

-------------

可能性在第三种声明变量的后后不赋初值,编译器就会自动赋予相应类型的「零值」,不之类型的零值不尽相同,比如字符串的零值还会 nil,什么都空串,整形的零值什么都 0 ,布尔类型的零值是 false。

func main() {

func main() {

原文发布时间为: 2018-11-13

本文作者:码洞

本文来自云栖社区合作者者 伙伴“码洞”,了解相关信息能非要关注“码洞”。

注意到人们歌词 歌词 人们歌词 歌词 使用了 var 关键字,它什么都用来显式定义变量的。还注意到在变量名称 s 底下声明了变量的类型为整形 int,而且再给它赋上了二个 多 初值 42。底下的变量定义能非要错综复杂,将类型添加,可能性编译器会自动推导变量类型,效果也是一样的,如下

// 字符串类型var g string = "abcdefg"

import "fmt"

// 有符号整数,能非要表示正负var a int8 = 1 // 1 字节

--------------- 42

uintptr 指针类型

复数类型用于科学计算,平时基本上用不上。rune 和 uintptr 的用法在后续文章中会全部讲解。简单某些说 rune 和 byte 的关系就好比 Python 底下的 unicode 和 byte 、Java 语言底下的 char 和 byte 。uintptr 要花费 C 语言底下的 void* 指针类型。

Go 语言定义了非常丰厚的基础类型,下面我列举了所有的基础数据类型。

任何一门语言底下最基础的莫过于变量了。可能性把内存借喻成一格一格整齐排列的储物箱,如此 变量什么都每个储物箱的标识,人们歌词 歌词 人们歌词 歌词 通过变量来访问计算机内存。如此 变量的程序运行对于人类来说是可怕的,时要人们歌词 歌词 人们歌词 歌词 用数字位置来定位内存的格子,人类极不擅长曾经的事。这就好比一岁半左右的幼儿还如此 学着什么都有名词,非要用手来对物体指指点点来表达被委托人的喜好。变量让程序运行逻辑有了丰厚的表达形式。

// 浮点数var h float32 = 3.14

func main() {

--------------

import "fmt"

类型是变量身份的象征,可能性二个 多 变量不如此 在乎被委托人的身份,那在形式上就能非要随意某些。var 的意思什么都告诉读者「我有点痛 要,我能非要注意」,:= 的意思是告诉读者「我很随意,别把我当回事」。var 再带上显式的类型信息是为了方便读者快速识别变量的身份。

学过 C 语言的同学可能性会问,Go 语言里有如此 静态变量呢?答案是如此 。

---------------

const globali int = 24

这三种变量定义最好的依据 还会 可行的,各有其优缺点。可读性最强的是第三种,写起来最方便的是第三种,第二种是介于两者之间的形式。



还有另外2个不常用的数据类型,读者能非要暂不理会。

97

true abcdefg

import "fmt"

func main() {

下一节人们歌词 歌词 人们歌词 歌词 开讲 Go 语言的条件判断与循环的话

全局变量和局部变量

----------

func main() {

Go 语言被称为互联网时代的 C 语言,它延续使用了 C 语言的指针类型。

人们歌词 歌词 人们歌词 歌词 又看完了久违的指针符号 * 和取地址符 &,在功能和使用上同 C 语言几乎一摸一样。同 C 语言一样,指针还支持二级指针,三级指针,只不过在日常应用中,很少遇到。

import "fmt"

import "fmt"

---------------

// bool 类型var f bool = true

底下人们歌词 歌词 人们歌词 歌词 在代码例子中编写的变量还会 局部变量,它定义在函数内部,函数调用开始了它就消亡了。与之对应的是全局变量,在程序运行运行期间,它老会 趋于稳定,它定义在函数外面。

-------------



指针变量本质上什么都二个 多 整型变量,底下存储的值是曾经变量内存的地址。* 和 & 符号都什么都它的语法糖,是用来在形式底下便使用和理解指针的。* 操作符趋于稳定两次内存读写,第一次获取指针变量的值,也什么都内存地址,而且再去拿三种内存地址所在的变量内容。

复数类型 complex64 和 complex128

func main() {

var globali int = 24

Go 语言的变量定义有多种形式,人们歌词 歌词 人们歌词 歌词 先看最繁琐的形式

图片

func main() {

定义变量的三种最好的依据

-----------

// 无符号整数,非要表示非负数var ua uint8 = 1

变量与常量

func main() {

import "fmt"

func main() {

// int 类型,在32位机器上占二个 多 字节,在64位机器上占8个字节var e int = 5