前言
所谓“无规矩不成方圆”,go语言也有它自身的一些语法和规范,而这些都是我们能够顺利驾驭它的基础知识,必须打下坚实基础,才能在以后的学习道路上一马平川,由于基础知识有点多,所以就准备分多篇文章来进行分享,本文为第一篇,主要讲解的内容有:工作区目录结构、代码包导入方式、相关命令、程序实体和关键字、变量和常量。
基础知识
一、工作区目录结构
go的工作区目录结构一般分为三部分,即:bin目录、pkg目录、src目录,当然这三个目录如果用goland创建工程的时候并不存在,这时候可以手动新建,当然这也不是必须的,只是按规范来总是要好些的,那么这三个目录一般存放些什么呢?
bin目录:用来存放当前工作区中的go程序的可执行文件。
pkg目录:用来存放归档文件(名称以.a为后缀的文件)。
src目录:用来存放源码,源码可以根据不同作用再细分目录。
二、代码包导入方式
1、系统代码包自动导入
import "fmt"
使用:fmt.Println("Hello,World")
2、代码包别名导入
import f "fmt"
使用:f.Println("Hello,World")
3、代码包本地化导入
import . "fmt"
使用:Println("Hello,World")
4、仅执行代码包初始化函数导入
import _ "fmt"
使用:会自动执行该包内的全局变量和init函数,但无法使用fmt里面的任何东西,如果被导入代码包和导入代码包中都有init函数,那么是先执行被导入包中的init函数。
5、多代码包导入
import (
"fmt"
"strings"
)
三、相关命令
此处只列举比较有用常用的命令,并且不做详细说明,只做抛砖引玉。
go run:用于运行命令源码文件,其内部执行步聚是先编译源码文件到临时文件再运行,如下图所示:
go build:用于编译源码文件或代码包。
go install:用于编译并安装代码包或源码文件。
go get:用于从远程代码仓库上下载并安装代码包。指定的代码包会被下载到$GOPATH中包含的第一个工作区的src目录中。
四、程序实体和关键字
程序实体:变量、常量、函数、结构体、接口
标识符:程序实体对应的名字,可以是任何Unicode编码可以表示的字母字符、数字以及下划线“_”,不过,首字母不能是数字或下划线,另外不能是关键字。
访问权限:名字首字母为大写的程序实体可以被任何代码包中的代码访问到;而名字首字母为小写的程序实体则只能被同一个代码包中的代码所访问。
关键字:特定的字符序列,go关键字如下图所示
五、变量和常量
1、变量
关键字是var
声明一个整型变量:var num int
声明并赋值:var num int = 1
声明并多个赋值:var num1, num2 int = 2, 3
2、常量
关键字是const
声明一个整型常量:const num int = 0 或 const num = 0,推荐前者
与iota共用:iota的初始值是0,后面会自增1,iota会自动初始化括号作用域内iota后边的常量,但不能是iota前边的常量,当同时有多个iota的时候,以第一个为准,这一块比较绕,给个事例比较好懂一点。