第一章 基本机构与基本数据类型

1、文件名、关键字与标识符

  1. Go的源文件以.go为后缀名存储,这些文件名均由小写字母组成,如果文件名由多个部分组成,则是用下划线_对他们进行分隔。文件名不包含空格或其他特殊字符。
  2. 下面列举了GO代码中会使用到的25个关键字或保留字:
break default func interface select
case defet go map struct
chan else goto package switch
const failthrough if range type
continue for import return var
  1. 除了上述关键字,Go语言还有36个预定义标识符,其中包含了基本类型的名称和一些基本的内置函数:
append bool byte cap close complex complex64 complex128 uint16
copy false float32 float64 imag int int8 int16 uint32
int32 int64 iota len make new nil panic uint64
print println real recovr string true uint uint8 uintptr

2、常量

  1. 常量使用关键字const定义,用于存储不会改变的数据。
  2. 存储在常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
  3. 常量的定义格式:const identifier type = value,在Go语言中,你可以省略类型说明符type,因为编译器可以根据变量的值来推断其类型。
  • 显示类型定义:const b string = “abc”
  • 隐式类型定义:const b = “abc”
  1. iota可以被用作枚举值:
const (
	Unknow = iota       //0
 	Female = iota		//1
	Male = iota			//2
)
  1. iota也可以用在表达式中,如:iota + 50。在每遇到一个新的常量块或单个常量声明时,iota都会重置为0(简单地讲,每遇到一次const关键字,iota就重置为0)。

3、变量

简介

  1. 声明变量的一般形式是使用var关键字:var identifier type。
  2. 当一个变量被生命之后,系统自动赋予它该类型的零值:int为0,float为0.0,bool为false,string为空字符串,指针为nil。记住,所有的内存在Go中都是经过初始化的。
  3. 当你在函数体内生命局部变量时,应使用简短声明语法 :=,例如: a := 1。

值类型和引用类型

  1. 在Go语言中,指针属于引用类型,其它的引用类型还包括slices,maps和channel。被引用的变量会存储在堆中,以便进行垃圾回收,且比栈拥有更大的内存空间。

简短形式,使用 := 赋值操作符

  1. 这是使用变量的首选形式,但是它们只能被用在函数体内,而不可以用于全局变量的生命与赋值。使用操作符 := 可以高效地创建一个新的变量,称之为初始化声明。
  2. 如果你声明了一个局部变量却没有在相同的代码块中使用它,会得到编译错误,但是全局变量是允许声明但不使用。
  3. 多个变量可以在同一行进行赋值,这被称为并行或同时赋值,如:
a,b,c = 5, 7, "abc"
  1. 如果你想交换两个变量的值,则可以简单的使用a, b = b, a 。
  2. 空白标识符_也被用于抛弃值,如值5在: _, b = 5, 7 中被抛弃。

init函数

  1. 变量除了可以在全局声明中初始化,也可以在init函数中初始化。这是一类非常特殊的函数,它不能够被人为调用,而是在每个包完成初始化后自动执行,并且执行优先级比main函数高。
  2. 每个源文件都只能包含一个init函数,初始化总是以单线程执行,以保证程序状态的正确性:在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42205011/article/details/88621800