随笔分类 - go
摘要:目录: beego介绍 不废话上代码 后记 beego介绍 beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架,但是结合了
阅读全文
摘要:配置环境 系统: Ubuntu16 Centos7 软件: prometheus-2.8.0 Grafana v6.0.1 node_exporter 0.17.0 一、node_exporter安装配置 1.1 下载 sudo wget https://github.com/prometheus/
阅读全文
摘要:目录 TCP/IP协议介绍 GO快速实现TCP服务端 GO快速实现TCP客户端 UDP协议介绍 UDP编程实例 TCP/IP协议介绍 1、互联网起源 A. 起源于美国五角大楼,它的前身是美国国防部高级研究计划局主持研制的ARPAnet。B. 互联网的基础是TCP/IP协议C. TCP/IP 是供已连
阅读全文
摘要:目录 select语义介绍和使用 线程安全介绍 互斥锁介绍和实战 读写锁介绍和实战 原子操作介绍 select语义介绍和使用 1、多channel场景 A. 多个channel同时需要读取或写入,怎么办?B. 串行操作? 2、select登场 A. 同时监听一个或多个channel,直到其中一个ch
阅读全文
摘要:目录 并发和并行 Goroutine初探 Goroutine实战 Goroutine原理浅析 Channel介绍 Waitgroup介绍 Workerpool的实现 并发和并行 1、概念A. 并发:同一时间段内执行多个操作。B. 并行:同一时刻执行多个操作。 Goroutine初探 1、多线程 A.
阅读全文
摘要:目录 单元测试 压力测试 Go test命令介绍 单元测试 1、自动化测试框架 testingA. testing包提供了自动化测试相关的框架B. 支持单元测试和压力测试 2、测试规范 Go中的测试约定A. 用来测试的代码必须以_test.go结尾B. 单元测试的函数名必须以Test开头, 并且只有
阅读全文
摘要:目录 变量介绍 反射介绍 结构体反射 反射总结以及应用场景 变量介绍 1、变量的内在机制 A. 类型信息,这部分是元信息,是预先定义好的B. 值类型,这部分是程序运行过程中,动态改变的 反射介绍 1、 反射与空接口 A. 空接口可以存储任何类型的变量 B. 那么给你一个空接口,怎么里面存储的是什么东
阅读全文
摘要:目前 日志库需求分析 日志库接口设计 文件日志库开发 Console日志开发 日志使用以及测试 日志库需求分析 1、日志库需求分析 A. 程序运行是个黑盒B. 而日志是程序运行的外在表现C. 通过日志,可以知道程序的健康状态 2、日志库需求分析 A. Debug级别:用来调试程序,日志最详细。对程序
阅读全文
摘要:目录 接口介绍与定义 空接口和类型断言 指针接收和值接收区别 接口嵌套 接口介绍与定义 1、 接口定义了一个对象的行为规范 A. 只定义规范,不实现B. 具体的对象需要实现规范的细节 2、Go中接口定义 A. type 接口名字 interfaceB. 接口里面是一组方法签名的集合 3、Go中接口的
阅读全文
摘要:目录 文件打开和读写 读取压缩文件 bufio原理和cat命令实现 defer详解 文件打开和读写 1、 文件是存储在外部介质上的数据集合。 A. 文件分类:文本文件和二进制文件 B. 文件存取方式:随机存取和顺序存放 2、文件打开 3、文件读取, file.Read和file.ReadAt。读到文
阅读全文
摘要:目录: 格式化输入 格式化输出 终端输入输出背后的原理理 bufio包的使用 命令行参数处理理和urfave/cli使用 格式化输入 1、从终端获取⽤用户的输入 格式化输入 fmt.Scan(a …interface{}): 从终端获取⽤用户输入,存储在Scanln中的参数里,空格和换行符作为分隔符
阅读全文
摘要:目录: 方法的定义 函数和方法的区别 值类型和指针类型 面向对象和继承 结构体和json序列化 方法的定义 1、和其他语言不一样,Go的方法采⽤用另外一种方式实现。 2、Go的方法是在函数前面加上一个接受者,这样编译器器就知道这个方法属于哪个类型了 Test的接受者,因此A这个对象有一个Test方法
阅读全文
摘要:目录: struct声明和定义 struct的内存布局以及构造函数 匿名字段和struct嵌套 struct与tag应用 struct声明和定义 1、Go中面向对象是通过struct来实现的, struct是用户自定义的类型。 注意:type是⽤用来定义一种类型 2、struct初始化⽅方法1 注意
阅读全文
摘要:目录 Go源码组织方式 main函数和main包 编译命令 自定义包 init函数以及执行行顺序 _标识符 Go源码组织方式 1、 Go通过package的方式来组织源码 注意:任何一个源码都属于一个包 作用:代码复用和可读性 2、可执行程序的包名必须为main,并且包含一个main函数 3、pac
阅读全文
摘要:目录 声明和初始化 基本操作 map排序 map类型的切⽚片 课后作业 声明和初始化 1、map类型是⼀一个key-value的数据结构。 注意:map必须初始化才能使⽤用,否则panic 2、map类型的变量量默认初始化为nil,需要使⽤用make分配map内存 基本操作 1、map插入操作 2、
阅读全文
摘要:目录 变量和内存地址 指针类型 值拷贝和引用拷贝 变量和内存地址 1、每个变量都有内存地址,可以说通过变量来操作对应大小的内存 注意:通过&符号可以获取变量的地址 指针类型 1、普通变量存储的是对应类型的值,这些类型就叫值类型 2、指针类型的变量存储的是一个地址,所以又叫指针类型或引用类型 3、指针
阅读全文
摘要:目录: 切片定义 切片基本操作 切片传参 make和new的区别 切片定义 1. 切片是基于数组类型做的一层封装。它非常灵活,可以自动扩容。 2. 切片初始化, a[start:end]创建一个包括从start到end-1的切片。 3. 切片初始化方法2。 切片基本操作 1. 数组切片的基本操作a)
阅读全文
摘要:目录 数组定义 二维数组 数组拷贝、传参 数组定义 1. 数组是同一类型的元素集合。 2. 数组初始化 3. 数组⻓长度是类型的一部分 4、len内置函数 5. 数组遍历 var a [3]inta[0] = 10a[1] = 20a[2] = 30for index, val := range a
阅读全文
摘要:目录 变量作用域和可见性 匿名函数 闭包 课后练习 变量作用域和可见性 1、全局变量量,在程序整个生命周期有效。 2、局部变量量,分为两种: 1)函数内定义, 2)语句句块内定义。 3. 可⻅见性,包内任何变量量或函数都是能访问的。 包外的话,⾸首字⺟母⼤大写是可导出的 能够被其他包访问或调⽤用。
阅读全文
摘要:目录 1、函数介绍 2、多返回值和可变参数 3、defer语句 4、内置函数介绍 1、函数介绍 1.1定义: 有输⼊入、有输出,⽤用来执⾏行行⼀一个指定任务的代码块。 1.2⽆无参数和返回值的函数 1.3实现两个数相加 1.4如何连续的⼀一系列列参数的类型是一样,前⾯面的类型可以不不写如何连续的 1
阅读全文

浙公网安备 33010602011771号