# go-study **Repository Path**: yjsshifu/go-study ## Basic Information - **Project Name**: go-study - **Description**: go 语言学习 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-09-13 - **Last Updated**: 2023-09-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # go-study #### 介绍 go 语言学习 #### 代码结构图 ##### 每个单独可执行的文件顶部是代码中已实现功能的注释 ``` go-study │ > 父项目 ├────基础 │ > 变量定义 │ > 常量定义 │ > 枚举 │ > 条件语句 │ > 循环语句 │ > 函数定义 │ > 指针 │ > 字符操作 │ > 字符串操作 ├────容器 │ > 数组 │ > 数组切片Slice │ > Map操作 │ > Map寻找最长不含有重复字符的子串长度 ├────面向伪对象 │ > 结构体 │ > TreeNode │ |- 结构体的定义 │ |- 给结构体增加方法 │ |- 如果要改变结构体中的内容,可以通过指针来操作 │ |- go语言中首字母大写代表public,小写代表private,是相对于包来说的 │ |- 一个目录下只能有一个包 │ |- 为结构定义的方法必须放在同一个包内,可以是不同文件 │ > 扩展 │ > base │ > Person │ |- 定义一个基类,后续在此类上扩展方法 │ > 扩展别人或系统包 │ > 别名扩展 │ > main包 │ > main.go │ |- 测试扩展的Queue │ > queue.go │ |- 扩展系统的slice作为一个Queue │ > 组合扩展 │ > PersonExt.go │ |- 对base包中的Person进行组合扩展(产生一些新方法) │ > 接口 │ > FileDownload.go │ |- 文件下载接口 │ > FileUpload.go │ |- 文件上传接口 │ > FileUploadDownload.go │ |- 文件上传和下载组合接口,另外加上本接口自己的方法 │ > mock │ |- 实现了FileUploadDownload组合接口 │ > network │ |- 实现了FileDownload接口 │ |- 使用http获取百度的内容 │ > main │ |- 测试接口/组合接口实现 │ |- 接口是由使用方来定义的 ├────函数式编程 │ > adder │ |- 实现多个数的累加 │ > fibonacci │ |- 实现斐波那契数列 │ |- 为函数实现接口 │ |- int和[]byte 之间的互相转换 ├────错误处理和资源处理 │ > defer │ |- defer定义的一定会执行,即使出现了return和panic 语句 │ |- defer定义的语句会后执行,比正常语句后执行 │ |- defer语句可以定义多个,后定义的先执行 │ |- 应用场景: │ > 使用 defer 来关闭各种流资源等 │ > recover │ |- panic会中断程序的执行,除非遇到了recover │ |- recover只能在defer中使用 ``` ``` 简单笔记: 1、go 的源代码需要放置在gopath下的src目录下,不然可能导入不了自己写的包 2、int转换成string ==> strconv.Itoa(i) ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request