随笔分类 -  go语言

go go go
摘要:一、slice的坑 案例: 查看以下代码会输出啥? func main() { a := []int{7,8,9} fmt.Printf("len: %d cap:%d data:%+v\n", len(a), cap(a), a) ap(a) fmt.Printf("len: %d cap:%d 阅读全文
posted @ 2023-05-28 15:37 南昌拌粉的成长 阅读(523) 评论(0) 推荐(0) 编辑
摘要:基本原则 可读性和可维护性:设计目录结构应该易于阅读和维护,目录名称要简洁、清晰,最好能达到顾名思义的效果。 可扩展性和模块化:设计目录结构应该易于扩展和模块化,随着时间的推移,项目会不断变大,项目的目录结构应该能够很容易支撑这种变化 规范性和一致性:设计目录结构应该遵循规范和一致性,如无特殊情况, 阅读全文
posted @ 2023-04-07 11:12 南昌拌粉的成长 阅读(392) 评论(0) 推荐(0) 编辑
摘要:一、server端 package main import ( "fmt" "net" ) var message = make(chan string) type client struct { Name string Addr string C chan string } var online 阅读全文
posted @ 2023-02-02 17:58 南昌拌粉的成长 阅读(86) 评论(0) 推荐(0) 编辑
摘要:1、 for循环中使用短变量声明初始值 案例1: type Data struct { d *int } func main() { list := make([]Data, 0) for i := 0; i < 10; i++ { list = append(list, Data{ d: &i}) 阅读全文
posted @ 2023-01-18 11:24 南昌拌粉的成长 阅读(44) 评论(0) 推荐(0) 编辑
摘要:1、案例1 package main import "fmt" type Card struct { id int } func main() { list := make([]*Card, 0) card := &Card{} for index := 1; index < 10; index++ 阅读全文
posted @ 2023-01-13 11:14 南昌拌粉的成长 阅读(74) 评论(0) 推荐(0) 编辑
摘要:死锁: - 单个协程永久阻塞 - 两个或两个以上的协程执行过程中,由于竞争资源或由于彼此通信而造成的一种阻塞的现象。 channel 死锁场景: - 非缓存channel只写不读 - 非缓存channel读在写后面 - 缓存channel写入超过缓冲区数量 - 空读 - 多个协程互相等待 1、非缓存 阅读全文
posted @ 2022-11-30 16:44 南昌拌粉的成长 阅读(139) 评论(0) 推荐(0) 编辑
摘要:一、go标准库context 前言: 在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理。请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务。用来处理一个请求的 goroutine 通常需要访问一些与请求特定的数据,比 阅读全文
posted @ 2022-10-17 16:52 南昌拌粉的成长 阅读(20) 评论(0) 推荐(0) 编辑
摘要:一、append是深拷贝, func main() { a := []int{7, 8, 9} fmt.Printf("%+v\n", a) ap(a) fmt.Println("==", a) app(a) fmt.Println("-a-a", a) } func ap(a []int) { a 阅读全文
posted @ 2022-09-26 07:56 南昌拌粉的成长 阅读(50) 评论(0) 推荐(0) 编辑
摘要:一、bufio.NewScanner(os.Stdin) 接收用户发送的账户密码 func Login() (map[string]string, map[string]string) { user := map[string]string{} pass := map[string]string{} 阅读全文
posted @ 2022-09-21 21:14 南昌拌粉的成长 阅读(89) 评论(0) 推荐(0) 编辑
摘要:一、Goweb通过https提供服务 func main() { ListenAndServerTLS() } func ListenAndServerTLS() { server := http.Server{ Addr: "127.0.0.1:8080", Handler: nil, } ser 阅读全文
posted @ 2022-09-17 14:10 南昌拌粉的成长 阅读(137) 评论(0) 推荐(0) 编辑
摘要:一、工作目录结构说明 1、bin:用于放置发布的二进制程序 2、pkg:用于放置发布的库文件 3、src:用于放置源代码 二、go install命令介绍 1、使用共go install编译并发布二进制文件 命令:go install gpkgmain 说明:编译并发布路径gpkgmain下的包,m 阅读全文
posted @ 2022-09-16 00:47 南昌拌粉的成长 阅读(55) 评论(0) 推荐(0) 编辑
摘要:1、http请求包,报文格式 请求行:请求方法,,请求文件URL,协议版本 请求头:语法格式:key:value 空行:\r\n 请求包体:请求方法对应的数据内容。GET方法没有内容!! 2、http响应包,报文格式 3、设置http头和状态码 golang中设置http头用 w.Header(). 阅读全文
posted @ 2022-09-06 16:10 南昌拌粉的成长 阅读(71) 评论(0) 推荐(0) 编辑
摘要:1. git的四个工作区域 Git本地有四个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Reponsitory或Git Directory)、git仓库(Remote Directory) Workspace:工作区,就是你平时存放项目代码的地 阅读全文
posted @ 2022-08-18 00:02 南昌拌粉的成长 阅读(28) 评论(0) 推荐(0) 编辑
摘要:1.首先开启go module go env -w GO111MODULE=on // Windows export GO111MODULE=on // macOS 或 Linux 2.配置goproxy: 阿里配置: go env -w GOPROXY=https://mirrors.aliyun 阅读全文
posted @ 2022-08-01 23:10 南昌拌粉的成长 阅读(2178) 评论(0) 推荐(0) 编辑
摘要:一、概念 在多协程并发环境下,我们常常会碰到以下两个问题。假设我们现在有 2 个协程,我们叫它们协程 A 和 B 。 【问题1】如果协程 A 发生了 panic ,协程 B 是否会因为协程 A 的 panic 而挂掉?【问题2】如果协程 A 发生了 panic ,协程 B 是否能用 recover 阅读全文
posted @ 2022-06-20 14:16 南昌拌粉的成长 阅读(1456) 评论(1) 推荐(0) 编辑
摘要:结论:defer和return的执行顺序 先为返回值赋值,然后执行defer,然后return到函数调用处。 一、先看return的使用方法 package main import "fmt" // return语句执行步骤 // 1、返回值赋值 // 2、defer语句 // 3、真正RET返回 阅读全文
posted @ 2022-06-19 17:28 南昌拌粉的成长 阅读(747) 评论(0) 推荐(0) 编辑
摘要:一、概念: 1、channel是可以让一个 goroutine 发送特定值到另一个 goroutine 的通信机制,channel 的发送方和接受方是 goroutine 对象,属于内存级别的通信 2、channel 在多并发操作里是属于协程安全的,并且遵循了 FIFO 特性。即先执行读取的 gor 阅读全文
posted @ 2022-06-14 15:34 南昌拌粉的成长 阅读(59) 评论(0) 推荐(0) 编辑
摘要:一、并发和并行 1、并行 要求CPU有多核计算的能力 在同一时刻需要多个线程在多个CPU上同时执行指令,无论宏观还是微观上都会看到多个线程同时在运行 2、并发 并不要求CPU具备多核计算的能力 每核CPU都是独立的,CPU与CPU之间不需要交互 二、线程 线程是操作系统能够调度的最小单位,分为内核态 阅读全文
posted @ 2022-06-12 20:58 南昌拌粉的成长 阅读(217) 评论(0) 推荐(0) 编辑
摘要:报错: crypto\tls\cipher_suites.go:18:2: cannot find package "golang_org/x/crypto/chacha20poly1305" in any of: C:\Go\src\golang_org\x\crypto\chacha20poly 阅读全文
posted @ 2022-03-02 18:42 南昌拌粉的成长 阅读(1246) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示