摘要: 默认指针类型 | 类型 | 名称 | 长度 | 默认值 | | | | | | | pointer | 指针 | | nil | | array | 数组 | | 0 | | slice | 切片 | | nil | | map | 字典 | | nil | | struct | 结构体 | 1. 阅读全文
posted @ 2020-03-17 13:28 ZhiChao& 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 网络基本概念 网络编程的目的:直接或间接地通过网络协议与其他计算机进行通讯 网络编程中两个主要问题: 如何准确定位网络上一台或多台主机(通过 IP 地址) 找到主机后如何进行数据传输(有 OSI 模型和 TCP/IP 模型) OSI 模型将网络分为 7 层,过于理想化,未能广泛推广 TCP/IP 是 阅读全文
posted @ 2020-03-17 13:27 ZhiChao& 阅读(427) 评论(0) 推荐(0) 编辑
摘要: Go 自带了测试框架和工具,在 testing 包中,以便完成单元测试(T 类型)和性能测试(B 类型)。一般测试代码放在 文件中,与被测代码放于同一个包中。 单元测试 测试函数名称格式是: ,即以 Test 开头,跟上非小写字母开头的字符串。每个测试函数都接受一个 类型参数,用于输出信息或中断测试 阅读全文
posted @ 2020-03-17 13:24 ZhiChao& 阅读(912) 评论(0) 推荐(0) 编辑
摘要: 在 Golang 中没有 class,使用 struct 实现 class 的思想 1. 结构体的定义和初始化 结构体定义: 结构体初始化 2. 结构体参数 结构体作为函数的参数传递(值和指针传递不一样) 3. 结构体内存结构 一个结构体,会占用一段连续的内存空间 4. 构造函数 go 语言中没有构 阅读全文
posted @ 2020-03-17 13:18 ZhiChao& 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 1. 简介 go 没有面向对象语法等的要求 go 语言对于面向对象的设计非常简洁而优雅 没有封装(让数据更加安全,例如年龄不能是负的)、继承(减少代码冗余,父类和子类)、多态(可以产出不同的实例)这些概念,但同样通过别的方式实现这些特性 封装:通过方法实现 继承:通过匿名字段实现 多态:通过接口实现 阅读全文
posted @ 2020-03-17 13:15 ZhiChao& 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 注释的意义 注释可以帮我们很好的完成文档的工作,写得好的注释可以方便我们以后的维护。 /\ \ / 的块注释和 // 的单行注释两种注释风格, 在我们的项目中为了风格的统一,全部使用单行注释,注释的质量决定了生成的文档的质量。 下面从包注释、结构体(接口)注释、函数(方法)注释、代码逻辑注释以及注释 阅读全文
posted @ 2020-03-17 13:14 ZhiChao& 阅读(20862) 评论(0) 推荐(2) 编辑
摘要: 字符串的原理 字符串底层就是一个 字符串是由 组成 字符串中的字符是不能直接修改的 类型用于表示 的字符 如果是一个中文字符串不能将其转换为 数组修改,因为一个中文占 3 个字符 字符串操作 golang 中字符串操作可以通过 和`strconv`两个包来实现 求字符串长度 字符串 s 中是否包含 阅读全文
posted @ 2020-03-17 13:12 ZhiChao& 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 1. 切片的定义和初始化 切片是基于数组类型的封装,非常灵活,可以自动扩容 切片是真正意义上的动态数组,而且是一个引用类型,切片指向一个底层数组 定义切片 创建切片方式 2. 切片操作 | 操作 | 含义 | | | | | s[n] | 切片 s 中索引位置为 n 的项 | | s[:] | 从切 阅读全文
posted @ 2020-03-17 13:11 ZhiChao& 阅读(290) 评论(0) 推荐(1) 编辑
摘要: 反射是指程序运行期间对程序本身进行访问和修改的能力 变量的内在机制 变量包含类型信息和值信息 类型信息:是静态的元信息,是预先定义好的 值信息:是程序运行过程中动态改变的 反射的使用 reflect 包封装了反射相关的方法 获取类型信息:reflect.TypeOf,是静态的 获取值信息:refle 阅读全文
posted @ 2020-03-17 13:10 ZhiChao& 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 1. 选择结构 if 语句 if else else if 写法 2 在 java 和 js 等其他语言中 语句中需要添加 来终止当前 语句的执行,如果不写 则会自动穿透到下一个 语句块。但是在 go 语言中每个 语句结束默认 ,不会穿透到下一个 语句块,如果要想使当前 语句块穿透到下一个 语句块, 阅读全文
posted @ 2020-03-17 13:09 ZhiChao& 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 1. map 的定义和初始化 Map 是 go 内置的数据结构,是一种无序的键值对的集合,可以通过 key 快速找到 value 的值 Map 必须初始化才能使用,否则报错 定义 Map 创建 map 初始化 map 2. 键值操作 3. 遍历 4. 其他操作 查找某个键是否存在 对无序的 map 阅读全文
posted @ 2020-03-17 13:07 ZhiChao& 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 输入输出的底层原理 终端其实是一个文件,相关实例如下 os.Stdin:标准输入的文件实例,类型为\ File os.Stdout:标准输出的文件实例,类型为\ File os.Stderr:标准错误输出的文件实例,类型为\ File 以文件的方式操作终端 文件操作相关 API 根据提供的文件名创建 阅读全文
posted @ 2020-03-17 13:06 ZhiChao& 阅读(1261) 评论(1) 推荐(1) 编辑
摘要: web 工作流程 Web 服务器的工作原理可以简单地归纳为 客户机通过 TCP/IP 协议建立到服务器的 TCP 连接 客户端向服务器发送 HTTP 协议请求包,请求服务器里的资源文档 服务器向客户机发送 HTTP 协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负 阅读全文
posted @ 2020-03-17 11:59 ZhiChao& 阅读(623) 评论(0) 推荐(0) 编辑
摘要: 并行和并发 并行:在同一时刻,有多条指令在多个 CPU 处理器上同时执行 并发:在同一时刻,只能有一条指令执行,但多个进程指令被快速地轮换执行 go 语言并发优势 go 从语言层面就支持了并发 简化了并发程序的编写 goroutine 是什么 它是 go 并发设计的核心 goroutine 就是协程 阅读全文
posted @ 2020-03-17 11:57 ZhiChao& 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 1. 函数介绍 定义:有输入、有输出,用来执行一个指定任务的代码块,增加代码的可重用性 函数声明格式: 2. 自定义函数 无参数无返回值 有参数无返回值 有不定参数无返回值 无参数有返回值 有参数有返回值 练习 分别通过循环和递归函数,计算 1+2+3……+100 3.defer 关键字 defer 阅读全文
posted @ 2020-03-17 11:56 ZhiChao& 阅读(399) 评论(0) 推荐(1) 编辑
摘要: 在写 go 开发过程中我们要不断的写 判断,这个真是一个头疼的事情 下面我们来说说 golang 中关于错误处理的相关问题把 golang 中有一个 类型用来作为 信息处理 golang 中如何抛出异常和捕获异常 系统自己抛出异常 自己手动抛出异常,使用 函数手动抛出 使用 函数捕获异常 返回异常 阅读全文
posted @ 2020-03-17 11:54 ZhiChao& 阅读(633) 评论(0) 推荐(0) 编辑
摘要: 在 golang 中使用 标准包对时间进行处理 time 包下的 类型用来表示时间 获取时间 使用用 time.Now()获取当前时间 使用用 time.Now().Unix()获取当前时间戳(1970.1.1.00000 到现在的秒数) 时间戳转换 时间戳转换为 Time 类型 golang 源码 阅读全文
posted @ 2020-03-17 11:31 ZhiChao& 阅读(2506) 评论(0) 推荐(0) 编辑
摘要: 数据格式介绍 数据格式是系统中数据交互不可缺少的内容 这里主要介绍 、`XML MSGPack` JSON json 是完全独立于语言的文本格式,是 k v 的形式 name:zs 应用场景:前后端交互,系统间数据交互 json 使用 go 语言内置的 encoding/json 标准库 编码 js 阅读全文
posted @ 2020-03-17 11:30 ZhiChao& 阅读(1124) 评论(0) 推荐(0) 编辑
摘要: 1. 命名规则 go 语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则 必须以一个字母或下划线\_开头,后面可以跟任意数量的字母、数字或下划线 go 语言中大小写字母认为是不同的 go 语言中有 25 个关键字,不能用于自定义名字 | break | de 阅读全文
posted @ 2020-03-17 11:20 ZhiChao& 阅读(910) 评论(0) 推荐(0) 编辑
摘要: 1. 数组的定义和初始化 数组定义语法 定义和初始化数组 代码示例: 2. 数组遍历 3. 二维数组 4. 数组拷贝和传参 阅读全文
posted @ 2020-03-17 11:19 ZhiChao& 阅读(579) 评论(0) 推荐(0) 编辑