repository
0.0.0-20220902063825-20988d7d878c
Repository: https://github.com/hliangzhao/learngo.git
Documentation: pkg.go.dev
# Packages
No description provided by the author
No description provided by the author
# README
LearnGo
1-get-bilibili
通过一个简单的http get的例子熟悉Golang的语法。
2-array-slice-map-func
介绍Golang中的数组、切片、映射、函数的创建及使用(make
、传值 or 传址)。
3-type-system
介绍内置类型、引用类型、结构体、接口以及基于此的、多态的实现。
3-add-utils
介绍golang内置的常用工具,如操纵io流、发起外部进程、编码解码等。
4-goroutine-channel
介绍Golang最重要的特征:协程与通道。
协程是Go语言中实现并发的一种方式,协程之间传递信息和同步的渠道是channel。 此处的协程是轻量级线程,与Python中的协程完全不一样,会面临锁相关的问题。
5-concurrent-model
介绍Golang中的两种并发模型:Runner和Pool。
- Runner结构体内包含任务列表和传递信息的通道;
- Pool内部存放的是共享资源。
6-context
context主要是用来在协程之间传递上下文信息,包括取消信号、超时时间、截止时间以及一些键值对等。 客户端发起取消等信号,服务端收到之后就会终止响应本次请求,从而节约服务端资源。
7-testing-benchmarking
介绍Golang中的单元测试(测试函数是否有bug)和基准测试(测试函数的运行时间)的写法。
8-reflection
反射机制使得我们可以在程序动态运行时获得输入值的类型等信息。
最典型的案例是fmt.Println()
,该函数动态获得传入的参数信息从而给出正确的格式输出。
9-app-bili-stream
通过go get
使用外部包。
10-gRPC
展示了如何通过protoc
生成桩代码,并给出了gRPC server和client的一个简单案例。
11-gin
展示了Golang的web框架Gin
的使用。
12-video-website
综合运用Gin
和React
实现一个简易版B站。
13-Docker
给出了Dockerfile的一个构建示例。
给出了一个简易版的Docker实现。具体地,需要在代码中通过系统调用创建cgroup等内容对试图运行的程序进行进程隔离。
14-use-cobra
使用Cobra构建golang命令行应用程序示例。
15-crd-demo
通过CRD机制为Kubernetes集群实现一个自定义资源对象MyDemo
。