了解:https://www.runoob.com/go/go-concurrent.html
golang学习方向
区块链研发工程师
go服务器=>(特点:数据处理,处理大并发)/游戏软件工程师
golang分布式/云计算软件工程师(盛大云、cdn、京东)
统称golang核心编程
应用领域
区块链应用
后台服务器应用
云计算/云服务后台应用
学习方法
go语言吉祥动物:金花鼠
如何深入学习一个新技术或知识点
什么是程序
why is go语言
go的诞生
go语言特点
go语言开发工具
配置Go环境
$env:GO111MODULE = "on"
$env:GOPROXY = " http://goproxy.cn"
golang标识符、关键字、命名规则
标识符的组成
1.标识符由数字、字母和下划线( _)组成。123 abc _
2.只能以字母和下划线(_)开头。abc123 _sysVar 123abc
标识符区分大小写。 name Name NAME
// 标识符命名
package main
import "fmt"
func main() {
// 正确写法
var name string
var age int
var _sys int
// 错误写法
var 1name string
var &age int
var !email
}
// 语言关键字 举例
func main() {
if condition {
}
append()
}
// 命名规范
golang变量
变量是计算机语言中能储存计算结果或能表示值的抽象概念不同的变量保存的数据类型可能会不一样
// 变量声明的语法
varidentifier type
var: 声明变量关键字
identifier:变量名
type: 变量类型
注意:变量一旦声明必须使用
package main
func main(){
// 声明赋值 初始化
var name string = "tom"
var age int = 20
// 声明赋值类型推断自动判断类型 初始化
var name = "tom"
var age = 20
// 第一种
var name string
var age int
var m bool
// 第二种
var (
name string
age int
m bool
)
// 初始化多个变量及赋值
var name,age,b = "tom",20,true
//短变量声明 := 只能用在函数内部
name := "tom"
age := 10
// 匿名变量 省略声明 函数调用的方式使用
func a()(string, inta) {
return "tom", 20
}
使用 name, age = a()
}
golang语言常量
常量,就是在程序编译阶段就确定下来的殖,而程序在运行时则无法改变该值。在Go程序中,常量可以是数值类型(包括整型、浮点型和复数类型) 、布尔类型、字符串类型等。
const constantName[type] = value
const PI float64 = 3.14
const PI2 = 3.145 // 可以省略
const (
width = 100
height = 200
)
const i,j = 1,2
const a,b,c = 1,2,"foo"
iota 类似于 i++
const (
a = iota
a1 = iota
_ // 跳过的意思 不过还是要+1
a2 = iota
)
golang数据类型
golang基于架构的类型,例如:int、uint、uintptr
输出类型
fmt.Printf("%T\n",name) // string 类型
数组类型
a := [2]int{1,2}
golang布尔类型
var a:bool = true
var b:bool = false
// 用法
// 注意 不能用0和非0表示bool类型
if age >= 18 {
fmt/Println("ni")
}
golang数字类型MP4
func main {
var i8 int8
var i16 int16
var ui8 uint8
}
golang字符串
var html string = <html></html>
var str string = "1231223"
var dstr string = `
1
2
3
`
var pin = html + str
strings.Join([]string{html,str},",") // 字符串连接
var buffer bytes.Buffer // 缓存区
buffer.WriterString("tom")
// 切片
a := 2
b := 5
s[a:b] // 从a到b-1区间截取
s[:b] // 从0到b-1区间截取
s[a:] // 从0到最后区间截取
len(s) // 获取字符串长度
strings.Split(s, "") // 数组截取
golang格式化输出
fmt.Pringf()
// 结构图题
type WebSite struct {
Name string
}
func main() {
site := WebSite{Name:"docke360"}
}
golang运算符
golang中的流量控制
golang中的if语句
golang中的嵌套if语句
golang中switch的用法
golang中for循环
golang中for range循环
golang中goto关键字
golang中数组
golang中访问数组元素
golang中切片
golang中切片初始化
golang中切片的遍历
golang中切片的添加删除
golang中map
golang中map遍历
golang中函数
golang中函数返回值
golang中函数参数
golang中函数类型和函数变量
golang中高阶函数
golang中匿名函数
golang中闭包
golang中递归
golang中defer语句
golang中init函数
golang中指针
golang中指向数组的指针
golang中类型定义和类型别名
golang中结构体
golang中结构体初始化
golang中结构体指针
golang中结构体作为函数参数
golang中结构体的嵌套
golang中方法
golang中方法接收者类型
golang中接口
golang中接口值类型接收者和指针类型接收者
golang中接口和类型的关系
golang中接口嵌套
golang中接口实现ocp设计原则
golang中使用oop思想的实现和方法
golang中继承
golang中构造函数
golang中包
golang中包管理工具go mod
golang中并发编程之协程
golang中并发编程之通道channel
golang中并发编程之WaitGroup实现同步
golang中并发编程之runtime包
golang中并发编程之Mutext互斥锁实现同步
golang中并发编程之channel的遍历
golang中并发编程之select
golang中并发编程之Timer
golang中并发编程之Ticker
golang中并发编程之原子变量的引入
golang中并发编程之原子操作详解
golang中标准库os模块-文件目录相关
golang中标准库os模块-File文件读操作
golang中标准库os模块-File文件写操作
golang中标准库os包进程相关操作
golang中标准库os包和环境相关的方法
golang中标准库io包input output
golang中标准库ioutil包
golang中标准库bufio读相关操作
golang中标准库bufio写相关操作
golang中标准库bufio Scanner相关方法
golang中标准库log
golang中标准库builtin
golang中标准库bytes常用函数
golang中标准库bytes Reader类型
golang中标准库bytes Buffer类型
golang中标准库errors
golang中标准库sort包
golang中标准库time
golang中标准库json
golang中标准库xml
golang中标准库math
golang中操作mysql数据库-准备数据库和表
golang中操作mysql数据库-安装配置mysql驱动
golang中操作mysql数据库获得数据库连接
golang中操作mysql数据库-插入数据
golang中操作mysql数据库-查询操作
golang中操作mysql数据库-更新数据
golang中操作mysql数据库-删除数据
golang中操作MongoDB-BSON简介
golang中操作MongoDB-添加文档
golang中操作MongoDB-查找文档
golang中操作MongoDB-更新文档
golang中操作MongoDB-删除文档
gorm概述
gorm声明模型
gorm连接到数据库
gorm创建记录
gorm查询记录
gorm更新
gorm删除
gorm原生SQL和SQL构建器
gorm关联关系Belongs To(属于)
gorm关联关系值Has One(有一个)
gorm关联关系之Has Many
gorm关联关系之Many To Many
gorm关联关系之实体关联
gorm session配置
gorm事务控制
git简介
git的安装和配置
git的四个工作区
git文件的四种状态
git常用命令
git配置用户签名
git初始化本地仓库
git查看状态
git将代码添加到暂存区
git提交代码
git修改并提交代码
git项目版本切换
git分支简介
git分支常用命令
git合并分支
git合并解决冲突
git团队协作
gitHub创建远程仓库
gitHub推送本地仓库
gitHub拉取远程仓库
gitHub克隆远程仓库
gitHub团队内协作
gitHub跨团队协作
gitHub免密登录
配置git忽略文件
IDEA集成git初始化本地仓库
IDEA集成git切换版本
IDEA集成git创建和切换分支
IDEA集成git合并分支
IDEA集成git合并分支并解决冲突
IDEA中配置GitHub
IDEA中推送项目到github
IDEA中配置从github拉取项目
克隆gitHub中的项目
gitee码云简介
IDEA集成码云Gitee
gitlab简介
gitlab的安装与初始化
IDEA集成gitlab
为什么使用Docker
Docker简介
安装Docker
Docker中央仓库
Docker镜像操作
Docker容器
准备一个web项目
创建MySQL容器
创建Tomcat容器
将项目部署到tomcat
Docker数据卷
Dockerfile
Docker自定义镜像
下载安装Docker-compose
Docker-compose管理mysql和tomcat容器
使用Docker-compose命令管理容器
使用Docker-compose和Dockerfile管理镜像和容器