[TOC] web 开发 HTTP(超文本传输协议) 规定了客户端和服务器端的请求和响应,所有的服务器端接收的数据和响应都是 HTTP 协议。和语言没有关系 HTTP 协议是访问互联网使用的核心通信协议,也是所有 web 应用程序使用的通信协议 对于 HTTP 协议的消息模型:客户端发送请求消息,服务器端返回响应消息。传输层使用的是 TCP 协议,…
[TOC] Go 网络编程 网络是用来解决数据传输问题的不同电脑间的通讯 ◆网络编程 ➢TCP服务器/客户端开发 ➢UDP服务器/客户端开发 ➢命令行聊天室 ◆web开发 ➢HTTP协议 ➢web应用开发 ➢客户端开发 ◆Web爬虫 ➢HTML结构 ➢Goquery ◆RPC 服务器端: 监听服务(打电话) 接收客户端链接(等待电话) 交换数据(通…
1.6管道(异步) 数据处理者处理完数据后将数据放入缓冲区中,数据接收者从缓冲区中获取数据,处理者不用等待接收者是否准备好处理数据 为什么需要 channel: 前面使用全局变量加锁同步来解决 goroutine 得通讯,但是不够完美。 主线程在等待所有 goroutine 全部完成的时间很难确定。 如果主线程休眠时间长了,会加长等待时间,如果等待…
并发编程 并发编程开发将一个执行的过程按照并行算法拆分为多个可以独立执行的代码块,从而充分利用多核和多处理器提高系统吞吐率 goroutine(协程) 和 channel(管道) goroutine 可以做并发和并行的处理,可以将一个任务分解为多个 goroutine 去完成,让多个 cpu 去处理 需求: 要求统计 1-20000 的数字中,那些…
2 反射 反射是指在运行时动态的访问和修改任意类型对象的结构和成员,在 go 语言中提供 reflect 包提供反射的功能,每一个变量都有两个属性:类型(Type)和值(Value) 1.相关功能 reflect 2.反射技术应用 3.相关功能底层技术使用了反射技术 2.1 json json 其实就是格式化的字符串。 我们在做文件操作的时候呢,不…
[TOC] 文件与 IO 操作 基本操作(不带缓冲 IO):读、写 标准输入、输出、错误 带缓冲的 IO 文件,对我们并不陌生,文件是数据源(保存数据的地方)的一种,比如大家经常使用的word文档,txt文件,excel文件...都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声音... 程序的路径: 文件类型: 我们…
[TOC] 4 自定义类型&结构体定义 结构体默认是值类型 结构体是自定义类型的一种,在学结构体之前我们需要了解一下自定义类型 面向对象三大思想: 封装:在 go 里面实现封装就是用的结构体,将一堆属性不同的数据放到一起 继承:在其他代码段中可继承父代码的内容 多态:go 中没有比较好的多态示例 4.1 自定义类型 在 GO 里面是支持自定…
错误+延迟执行+panic&recover+单步调试 1 error 接口 Go 语言通过 error 接口实现错误处理的标准模式,通过使用函数返回值列表中的最后一个值返回错误信息,将错误的处理交由程序员主动进行处理 在程序中运行时错误错误一般分为两种: 可恢复的错误(重试/或忽略) 不可恢复的错误(程序退出) 范例代码: package …
函数类型+匿名函数+闭包 函数也可以赋值给变量,存储在数组、切片、映射中,也可作为参数传递给函数或作为函数返回值进行返回 通过函数类型,我们也可以定义一些集合类型,比如切片的映射的 函数类型的意义: 函数类型可以把函数作为参数传递到其他的函数中 1 函数类型 函数类型:由参数的数量和他的类型,还有返回值的数量和类型组成 package main i…
递归-阶乘&阶乘算法&汉诺塔 1 递归 递归是指函数直接或间接调用自己,递归常用于解决分治问题,将大问题分解为相同的小问题进行解决,需要关注终止条件 我们每做一个递归的时候一定要判断清楚递归的结束条件是什么 阶乘 package main import "fmt" func fact(n int) int { /…