## Go语言简介
Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻的一门语言,它的主要目标是“兼具`Python`等动态语言的开发速度和 `C/C++`等编译型语言的性能与安全性”。**Go语言没有类和继承的概念**,所以它和`Java`或 `C++ `看起来并不相同。**但是它通过接口(interface)的概念来实现多态性**。Go语言有一个清晰易懂的轻量级类型系统,在类型之间也没有层级之说。因此可以说Go语言是一门混合型的语言。
此外,很多重要的开源项目都是使用Go语言开发的,其中包括`Docker`、`Go-Ethereum、Thrraform` 和 `Kubernetes`。
>Go语言出自 Ken Thompson 和 Rob Pike、Robert Griesemer 之手,他们都是计算机科学领域的重量级人物。
## Go语言的特性
* 语法简单
其语法类似于C语言,同时又融合了其他编程语言的优点
* 并发模型
Goroutine 是 Go 最显著的特征。它用类协程的方式来处理并发单元,却又在运行时层面做了更深度的优化处理。这使得语法上的并发编程变得极为容易,无须处理回调,无须关注线程切换,仅一个关键字,简单而自然。可以说Go语言为并发而生
* 内存分配
将一切并发化固然是好,但带来的问题同样很多。如何实现高并发下的内存分配和管理就是个难题。好在 Go 选择了 tcmalloc,它本就是为并发而设计的高性能内存分配组件。
* 静态链接
编写完Go项目程序后,只需要编译成目标操作系统的可执行文件,即可在对应的平台上执行,无须依赖任何运行库。
* 生态圈
Go语言有着丰富的标准库,这些功能完善、质量可靠的内置标准库为开发者提供了极大的便利,比如在微服务领域中广泛使用的明星产品有Docker、nsq、etcd等。
- 前言
- go介绍
- 准备工作
- go 环境搭建
- Go入门基础
- 基础语法
- 数据类型
- 基本数据类型
- 复核类型
- 函数
- 常用内置包
- 指针
- 面向对象编程
- 结构体
- 接口
- 反射
- 单元测试
- 日志处理
- Go 进阶挑战
- GoWeb开发
- HelloWorld
- HTTP的概念
- HTTP请求方法
- HTTPS通信原理
- HTTP2
- Server 端启动的几种方式
- Server 端路由的几种方式
- Http请求
- Go 模板引擎
- Header
- Cookie
- Session
- Go-Mysql
- Go-orm库
- gorm
- xorm
- beego-orm
- Go-Redis
- Redis 介绍
- Redis 入门
- Go-操作Redis
- Go-MongoDB
- MongoDB 介绍
- MongoDB 入门
- Go-操作MongoDB
- Go 高级应用
- Socket编程
- Socket 介绍
- Go Socket编程
- 文件处理
- 目录操作
- 文件操作
- XML 操作
- JSON操作
- 并发编程
- goroutine与channel
- sync
- Web 框架
- Beego框架
- beego-init
- beego-api
- Gin框架
- Echo框架
- Iris框架
- Go实战
- Beego 仿小米后端服务
- 实战项目介绍
- 初始化项目
- 接口改造
- model改造
- 中间件配置
- 通用组件
- Gin 仿小米后端服务
- 项目实战介绍
- 初始化项目
- 接口改造
- model 改造
- 登录认证拦截
- 微服务
- 微服务介绍
- 容器化
- docker
- docker 介绍
- docker 安装
- docker 基本操作
- docker compose安装
- docker 安装MongoDB
- docker 安装mysql
- docker 安装redis
- Kubernetes
- Kubernetes 介绍
- Kubernetes 环境搭建
- Mac 安装 Kubernetes
- Windows 安装Kubernetes