gin 框架:2 Gin 基本使用-基础篇
2 Gin 基本使用-基础篇 2.1 路由与传参 2.1.1 无参路由 所谓的无参路由最主要的区别就是将处理函数单独拿出来 package main import ( "fmt" "github.com/gin-gonic/gin" ) // 将处理函数 handler 单独拆分开 // 无参数路由 func…
gin 框架:1 框架介绍以及部分源码介绍
gin 框架 1 简介 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错 借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范 1.1…
GO 从 0 到 1 系列:17 web 开发
[TOC] web 开发 HTTP(超文本传输协议) 规定了客户端和服务器端的请求和响应,所有的服务器端接收的数据和响应都是 HTTP 协议。和语言没有关系 HTTP 协议是访问互联网使用的核心通信协议,也是所有 web 应用程序使用的通信协议 对于 HTTP 协议的消息模型:客户端发送请求消息,服务器端返回响应消息。传输层使用的是 TCP 协议,…
GO 从 0 到 1 系列:16 网络编程
[TOC] Go 网络编程 网络是用来解决数据传输问题的不同电脑间的通讯 ◆网络编程 ➢TCP服务器/客户端开发 ➢UDP服务器/客户端开发 ➢命令行聊天室 ◆web开发 ➢HTTP协议 ➢web应用开发 ➢客户端开发 ◆Web爬虫 ➢HTML结构 ➢Goquery ◆RPC 服务器端: 监听服务(打电话) 接收客户端链接(等待电话) 交换数据(通…
GO 从 0 到 1 系列:15 管道channel
1.6管道(异步) 数据处理者处理完数据后将数据放入缓冲区中,数据接收者从缓冲区中获取数据,处理者不用等待接收者是否准备好处理数据 为什么需要 channel: 前面使用全局变量加锁同步来解决 goroutine 得通讯,但是不够完美。 主线程在等待所有 goroutine 全部完成的时间很难确定。 如果主线程休眠时间长了,会加长等待时间,如果等待…
GO 从 0 到 1 系列:14 并发编程
并发编程 并发编程开发将一个执行的过程按照并行算法拆分为多个可以独立执行的代码块,从而充分利用多核和多处理器提高系统吞吐率 goroutine(协程) 和 channel(管道) goroutine 可以做并发和并行的处理,可以将一个任务分解为多个 goroutine 去完成,让多个 cpu 去处理 需求: 要求统计 1-20000 的数字中,那些…
GO 从 0 到 1 系列:13 反射
2 反射 反射是指在运行时动态的访问和修改任意类型对象的结构和成员,在 go 语言中提供 reflect 包提供反射的功能,每一个变量都有两个属性:类型(Type)和值(Value) 1.相关功能 reflect 2.反射技术应用 3.相关功能底层技术使用了反射技术 2.1 json json 其实就是格式化的字符串。 我们在做文件操作的时候呢,不…
GO 从 0 到 1 系列:12 接口
接口与反射 go 中不需要声明 接口 与相关赋值接口和结构体的关系 只要调用了对应的接口里面所有的方法,我们就认为实现了接口 面向对象: 封装:将属性隐藏(结构体属性),提供相关接口供调用者访问和修改,调用的人不用关心我内部实现。 比如User{} 结构体里面,我们在设置 age 的时候,不可能说超过 200 岁,所以这个时候我们就要给他加一个 S…
GO 从 0 到 1 系列:11 文件与 IO 操作
[TOC] 文件与 IO 操作 基本操作(不带缓冲 IO):读、写 标准输入、输出、错误 带缓冲的 IO 文件,对我们并不陌生,文件是数据源(保存数据的地方)的一种,比如大家经常使用的word文档,txt文件,excel文件...都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声音... 程序的路径: 文件类型: 我们…
GO 从 0 到 1 系列:10 自定义类型&结构体定义
[TOC] 4 自定义类型&结构体定义 结构体默认是值类型 结构体是自定义类型的一种,在学结构体之前我们需要了解一下自定义类型 面向对象三大思想: 封装:在 go 里面实现封装就是用的结构体,将一堆属性不同的数据放到一起 继承:在其他代码段中可继承父代码的内容 多态:go 中没有比较好的多态示例 4.1 自定义类型 在 GO 里面是支持自定…