GO学习笔记 1 环境安装与配置

一、 GO语言简介

GO 2007年由Ken Tompson(贝尔实验室Unix团队成员,C语言、Unix和Plan 9的创始人之一)、Rob Pike(贝尔实验室 Unix 团队成员)、Robert Griesemer(Google职员,参与开发Java HotSpot虚拟机,并负责V8 引擎的代码生成部分) 创建, 2019年正式对外发布。
Go 是编译型语言。

GO语言的特性:

  • 语法简单
  • 并发模型,GO为并发而生。
  • 内存分配
  • 垃圾回收
  • 静态链接
  • 标准库
  • 工具链

二、windows开发环境配置

1. 下载golang

​https://golang.org/dl/​​ 我这里下载 go1.15.6.windows-amd64.msi

2. 安装

安装后把可以把 D:\tools\Go\bin 放到path路径。

三、CentOS 环境

wget https://golang.org/doc/install?download=go1.15.6.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.15.6.linux-amd64.tar.gz
vim /etc/profile
export PATH=$PATH:/usr/local/go/bin
source /etc/profile
go version

显示:

go version go1.15.6 linux/amd64

四、测试

1. 新建测试文件 test.go

package main

import "fmt"

func main() {
fmt.Println("Hello, World!")
}

2. 测试运行

go run test.go

GO学习笔记 1 环境配置与基础语法_golang

3. 测试编译

go build test.go

五、一些基础语法

1. 行分隔符

换行即可。如果在同一行的语句可以使用分号作分隔符。

2. 注释

与C类似,使用​​//​​​ 或​​/* */​

六、数据类型

1. 布尔型

​var b bool = true​

2. 数字类型

  • 整形 int: uint8 uint16 uint32 uint64 int8 int16 int32 int64-
  • 浮点型 float32 float64 complex64 complex128
  • byte(类似uint8),rune(类型int32),uint(32或64位),int(类似uint),uintptr无符号整形,用于存放一个指针

3. 字符串类型

4. 派生类型

  • 指针类型 Pointer
  • 数组类型
  • 结构化类型
  • Channel类型
  • 函数类型
  • 切片类型
  • 接口类型 Interface
  • Map类型

七、声明变量

1. 使用 ​​var​​关键字

var 变量名称 类型

可以一次声明多个变量。

package main
import "fmt"
func main() {
var a string = "Runoob"
fmt.Println(a)

var b, c int = 1, 2
fmt.Println(b, c)
}

2. 常量声明

const 变量名 [类型]=value

3. iota ,特殊常量

可以被编译器修改值,一个计数器。

八、条件语句

条件不需要使用括号 ,如:

package main

import "fmt"

func main() {
/* 定义局部变量 */
var a int = 10

/* 使用 if 语句判断布尔表达式 */
if a < 20 {
/* 如果条件为 true 则执行以下语句 */
fmt.Printf("a 小于 20\n" )
}
fmt.Printf("a 的值为 : %d\n", a)
}

九、循环语句

package main

import "fmt"

func main() {
for true {
fmt.Printf("这是无限循环。\n");
}
}

十、函数定义

func function_name( [parameter list] ) [return_types] {
函数体
}

函数允许有多个返回值,如:

package main

import "fmt"

func swap(x, y string) (string, string) {
return y, x
}

func main() {
a, b := swap("Google", "Runoob")
fmt.Println(a, b)
}

十一、数组

定义数组:

var 数组变量名 [大小] 数据类型

十二、指针

定义指针:

var 指针名称 *指针类型

取地址类似c语言使用 ​​&​​,示例:

package main

import "fmt"

func main() {
var a int= 20 /* 声明实际变量 */
var ip *int /* 声明指针变量 */

ip = &a /* 指针变量的存储地址 */

fmt.Printf("a 变量的地址是: %x\n", &a )

/* 指针变量的存储地址 */
fmt.Printf("ip 变量储存的指针地址: %x\n", ip )

/* 使用指针访问值 */
fmt.Printf("*ip 变量的值: %d\n", *ip )
}

空指针值是​​nil​