Go学习(九):数组使用

1.数组的概念

数组是相同类型的一组数据构成的长度固定的序列,其中数据类型包含了基本数据类型、复合数据类型和自定义类型。因为数组的内存是一段连续的存储区域,所以数组的检索速度是非常快的,但是数组也有一定的缺陷,就是定义后长度不能更改。

Go学习(八):指针

1.什么是指针?

指针是存储另一个变量的内存地址的变量。变量是一种使用方便的占位符,变量都指向计算机的内存地址。一个指针变量可以指向任何一个值的内存地址。

例如:变量a的值为100,存储在内存地址0x1040a124。变量b持有a的地址,则b被认为指向a。如下图

Go学习(七):闭包使用

1. 什么是闭包

闭包是由函数和与其相关的引用环境组合而成的实体在实现深约束时,需要创建一个能显式表示引用环境的东西,并将它与相关的子程序捆绑在一起,这样捆绑起来的整体被称为闭包。函数 + 引用环境 = 闭包。

Go学习(六):函数使用

1.函数申明

1.1 声明语法

1
2
3
4
5
func funcName( param type ) (output1 type1, output2 type2) {
   //这里是处理逻辑代码
   //返回多个值 
   return value1, value2
 }

1.2 语法解析

  • func: 函数关键字,
  • funcName: 指函数名,在同一个包内,函数不能重名。
  • param: 参数列表;参数列表指定的是参数类型、顺序及参数个数,函数可以不包含参数也可以不包含。
  • output1 type1, output2 type2: 返回值列表,Go语言的函数可以返回多个值。返回值可以是返回数据的数据类型,也可以是变量名+变量类型的组合。

2. 参数接收

2.1 参数类型简写

在参数列表中,如果有多个参数变量,则以逗号分隔;如果相邻变量是同类型,则可以将类型省略。

Go学习(五):流程控制

1.条件判断(if)

1.1 if

1.语法结构

1
2
3
if 布尔表达式 {
  // 布尔表达式为true时执行
}

2. 使用

1
2
3
4
a := 10
if a  > 3{
  fmt.Println("a > 3 为true")
}

1.2 if…else

1.语法结构

1
2
3
4
5
if 布尔表达式 {
  // 布尔表达式为true时执行
} else {
  // 布尔表达式为false时执行
}

2.使用

在if之后,条件语句之前,可以添加变量初始化语句,使用“;”进行分隔。

Go学习(四):数据类型

1.类型介绍

在Go语言中,有基本数据类型(原生数据类型)和复合数据类型(派生数据类型)。

image-20201118214224831

2.值类型

2.1 整型

整型分两大类:

  • 有符号整型:int8、int16、int32(别名:rune)、int64、int。

Go学习(三):变量使用

1.变量分类

变量的本质是计算机分配的一小块内存,专门用于存放指定数据,在程序运行过程中该数值可以发生改变;当程序运行结束,存放该数据的内存就会释放,该变量就会随着内存的释放而消失。

Go学习(二):程序组成结构及规范说明

1. 程序示例

以实际代码进行讲解:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
package main

// 这是引入包 
import "fmt"

// 入口函数
func main() {
  // 定义变量 
  str := "hello word"
  // 输出语句 
  fmt.Println(str)
}

2. 程序组成

2.1 包名: package main

package定义包名,必须在源文件中非注释的第一行指明这个文件属于哪个包。每个 Go 应用程序都包含一个名为 main 的包,并且该包包含一个叫main()的函数(该函数是Go程序执行的起点,既不能带参数,也不能定义返回值)。

Go学习(一):Mac环境下安装配置

1.安装

下载地址(https://golang.org/dl/)

image-20201113095444058

下载之后,双击安装;

2.验证

2.1 查看版本

1
2
3
# 查看版本
➜  ~ go version
go version go1.15.5 darwin/amd64

2.2 查看Go变量

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 查看环境变量
➜  ~ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/hui/Library/Caches/go-build"
GOENV="/Users/hui/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/hui/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/hui/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/8f/vnx2y1h57nzbd2p4vtcl6hv80000gn/T/go-build487191191=/tmp/go-build -gno-record-gcc-switches -fno-common"

2.3 查看环境变量PATH

1
2
3
➜  Go echo $PATH
/usr/local/opt/ncurses/bin:/usr/local/opt/icu4c/sbin:/usr/local/opt/icu4c/bin:/Users/hui/.nvm/versions/node/v12.3.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Users/hui/DevEnvSpace/maven-3.6.3/bin
# 可以看出/usr/local/go/bin 已经存在

3.环境变量介绍

3.1 GOROOT

golang 的安装路径,MAC环境下安装后,默认在(/usr/local/go)