go
文章平均质量分 55
峰子2012
前阿里巴巴、新浪 资深研发工程师,
每天一篇文章,喜欢的同学给一个关注,一起学习一起拿高薪
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Go语言的宕机恢复,如何防止程序奔溃
Go语言中的panic机制用于处理程序中无法继续执行的严重错误。当程序触发panic时,当前函数的执行会立即停止,程序开始逐层向上回溯调用栈,执行每个函数的defer语句,直到到达recover函数或者程序崩溃退出。通过recover函数,可以在defer语句中捕获并处理panic,从而避免程序意外崩溃。原创 2025-05-09 09:53:35 · 1145 阅读 · 0 评论 -
性能之巅:Go语言优化深度探索
性能优化是一个持续的过程,需要不断测试和调整。通过合理使用性能分析工具、优化内存管理、减少锁竞争、使用高效的算法和数据结构、优化I/O操作等方法,可以显著提升Go程序的性能。希望这些内容对你有所帮助!原创 2024-12-03 09:50:52 · 1059 阅读 · 0 评论 -
六个高频 MySQL 面试题
六个高频 MySQL ,最全Java面试题库文档!总共651页!原创 2022-08-11 10:37:37 · 4639 阅读 · 0 评论 -
Go 全套学习路线图
Go 学习路线图,包括基础专栏,进阶专栏,源码阅读,实战开发,面试刷题,必读书单等一系列资源。原创 2022-06-09 20:46:15 · 475 阅读 · 0 评论 -
并发和并行的区别
并发和并行的区别原创 2022-06-09 09:35:30 · 329 阅读 · 0 评论 -
Go Slice详解
GO slice代表变长的序列,它的底层是数组。一个切片由3部分组成:指针、长度和容量。指针指向底层数组,长度代表slice当前的长度,容量代表底层数组的长度。换句话说,slice自身维护了一个指针属性,指向它底层数组的某些元素的集合。......原创 2022-06-09 09:17:10 · 1035 阅读 · 0 评论 -
GitHub Copilot AI智能编程工具
GitHub 去年联合 OpenAI,推出了一款“GitHub Copilot”工具,可以根据上下文自动写代码,将程序员从重复的编写中解放出来。该工具此前已支持了 Visual Studio Code、Neovim 和 JetBrains IDE 等。近日,Copilot 来到了微软自家的 Visual Studio 2022,用户可下载扩展使用。 IT之家了解到,与在 Visual Studio Code 中使用方法一致,开发者需要先注册登记 GitHub Copilot,并等待官方批准,之后就可以在 V原创 2022-06-06 17:26:53 · 904 阅读 · 0 评论 -
如何更优雅的写GO-策略模式
如何更优雅的写GO-策略模式?原创 2022-03-25 19:56:48 · 731 阅读 · 0 评论 -
浅析Golang中怎么实现枚举
nginx php中文乱码的解决办法:1、将网页代码设置utf-8编码格式;2、在nginx服务端和nginx.conf中设置utf-8编码格式即可。本文操作环境:linux5.9.8系统、nginx1.14.0版,Dell G3电脑nginx php 中文乱码怎么办?nginx访问页面 中文乱码 解决方案今天在nginx上部署一个小网页项目时,中文出现乱码,搜了一下,网上解决方法都是一样 千篇一律改服务端的编码格式。这里总结一下解决方法:出现乱码可能由于以下两个位置没有配置编码格式:1、.原创 2022-02-07 15:15:06 · 8112 阅读 · 0 评论 -
企业微信会话内容存档及获取媒体文件
最近业务使用到企业微信“会话内容存档”,所以调研了一下企业微信会话内容存档技术。虽然官方有给出开发文档,但对于我这种菜鸟来说,确实是有点晦涩难懂啊。原创 2022-01-25 14:38:50 · 438 阅读 · 0 评论 -
阿里技术专家:一文教你高效画出技术架构图
技术传播的价值,不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径。加速业务的上线速率,也体现在优秀工程师的工作效率提升、产品性能优化和用户体验改善等经验方面的分享,以提高我们的专业能力。接下来,阿里巴巴技术专家三画,将分享自己和团队在画好架构图方面的理念和经验,希望对你有所帮助。当我们想用一张或几张图来描述我们的系统时,是不是经常遇到以下情况:对着画布无从下手、删了又来?如何用一张图描述我的系统,并且让产品、运营、开发都能看明白?画了一半的图还不清楚受众是谁?画出来的图到底是产品图功能原创 2022-01-20 14:44:34 · 415 阅读 · 0 评论 -
GO 基础语法50问
1.使用值为 nil 的 slice、map会发生啥允许对值为 nil 的 slice 添加元素,但对值为 nil 的 map 添加元素,则会造成运行时 panic。// map 错误示例func main() { var m map[string]int m["one"] = 1 // error: panic: assignment to entry in nil map // m := make(map[string]int)// map 的正确声明,分配了实际的原创 2022-01-19 20:04:27 · 2493 阅读 · 0 评论 -
Go 结构体,定义结构体类型
package main import "fmt" // 定义结构体类型 (在函数外部定义(全局的),可以在整个项目中使用)type student struct { id int // 结构体的成员 name string age int} func main() { // 定义结构体变量 (结构体是一种复合类型) var stu student // 为结构体成员赋值 stu.id = 1 // 默认0 (int) stu.name = "张三" //原创 2021-11-27 15:07:32 · 521 阅读 · 0 评论 -
GO slice切片去重
GO slice切片去重func sliceRepByMap(slc []uint) []uint { sellerIdList := []uint{} tempMap := map[int]byte{} for _, member := range slc { tempLen := len(tempMap) tempMap[int(member)] = 0 if len(tempMap) != tempLen { sellerIdList = append(seller原创 2021-10-30 12:21:52 · 332 阅读 · 0 评论 -
关于GoLang的concurrent map writes错误
作为一个GoLang萌新(其实就是并发编程萌新,之前一直在做PHP),对并发下共享资源的竞争了解不多。所以一开始写出了如下代码:type OriginPriceController struct { OriginPriceService *origin_price_service.OriginPriceService} func (self *OriginPriceController) action() { var wg sync.WaitGroup wg.Add(2) go f转载 2021-09-30 10:47:15 · 525 阅读 · 0 评论 -
Go 语言笔试面试题汇总
基础语法01 = 和 := 的区别?02 指针的作用03 Go 允许多个返回值吗?04 Go 有异常类型吗?05 什么是协程(Goroutine)06 如何高效地拼接字符串07 什么是 rune 类型08 如何判断 map 中是否包含某个 key ?09 Go 支持默认参数或可选参数吗?10 defer 的执行顺序11 如何交换 2 个变量的值?12 Go 语言 tag 的用处?13 如何判断 2 个字符串切片(slice) 是相等的?14 字符串打印时,%v 和 %+v 的区别原创 2021-09-26 14:55:50 · 727 阅读 · 0 评论 -
GO 学习每日一个知识点->第二天
下面这段代码输出什么,说明原因。func main() { slice := []int{0,1,2,3} m := make(map[int]*int) for key,val := range slice { m[key] = &val } for k,v := range m { fmt.Println(k,"->",*v) }}?????????????????????????你的原创 2021-09-11 15:21:51 · 128 阅读 · 0 评论 -
GO 学习每日一个知识点->第一天
defer :package main import ( "fmt" ) func main() { defer_call() }func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func() { fmt.Println("打印后") }() panic("触发异常")}看下答案,原创 2021-09-08 09:30:03 · 180 阅读 · 0 评论 -
Go 获取1分钟前的时间,一天前的时间
获取1分钟前的时间time.Now().Add(-time.Minute * 1)当前时间向上取整:var endTime = timeUtil.TruncateHourStr(time.Now().UTC().Format("2006/01/02 15:04:05")).Unix()获取一天前的时间var startTime = time.Now().AddDate(0, 0, -1).Unix()...原创 2021-09-08 09:19:49 · 3273 阅读 · 0 评论 -
目前go官方,没有加入三元运算符,但是可以通过以下方式模拟
目前go官方,没有加入三元运算符,我们如何解决呢 ?方式一:func If(isTrue bool,a,b int) int { if isTrue { return a } return b}func main(){ a,b:=1,3 max:=If(a>b,a,b) fmt.Println(max)}方式二: a,b:=3,5 max:=map[bool]int{a>=b:a,a<b:b}[true] min:=map[bool]int原创 2021-08-26 16:05:38 · 813 阅读 · 0 评论 -
GO 并发安全锁
1. 并发安全锁有时候在Go代码中可能会存在多个goroutine同时操作一个资源(临界区),这种情况会发生竞态问题(数据竞态)。类比现实生活中的例子有十字路口被各个方向的的汽车竞争;还有火车上的卫生间被车厢里的人竞争。var x int64var wg sync.WaitGroupfunc add() { for i := 0; i < 5000; i++ { x = x + 1 } wg.Done()}func main() { w原创 2021-08-24 09:13:49 · 228 阅读 · 0 评论 -
Golang struct、json、map互相转化
第三方接口返回json 你是怎么处理的?:{ "resp": { "respCode": "0", "respMsg": "ok", "app": { "userId": "d12abd3da59d47e6bf13893ec43730b8" } }}使用结构体结构体拆解 go 内置了json字串的解析包 “encoding/json”按照json库的分析,其实每一个花括号就是一个结构体&g原创 2021-08-23 20:45:23 · 722 阅读 · 0 评论 -
GO sync.WaitGroup 如何解决同步阻塞等待?
知识点:sync.WaitGroup可以解决同步阻塞等待的问题。一个人等待一堆人干完活的问题得到优雅解决。直接上代码wg := sync.WaitGroup{}workers := 3wg.Add(workers)worker := func() { defer wg.Done() // 干活干活干活}leader := func() { wg.Wait() // 检查工作成果}go leader()for i := 0; i < workers; i++ {.原创 2021-08-19 14:48:09 · 477 阅读 · 0 评论 -
Go比Php好在哪里?
Go语言最早并不是一个Google的正式项目,而是作为一个“20%”的项目出现。直到2009年,它被设计成一种系统编程语言,用于具有Web服务器、存储集群或类似用途的大型中央服务器的系统编程语言,目前GoTeam有稳定的发布周期,大约半年一个新的版本,目前最新为1.9版本。对于高性能的分布式系统,GO语言无疑比大多数其他语言更高效。它提供了大量的并行支持,这对于游戏服务端的开发而言是再好不过了。go语言与其它开源语言比较具有哪些优势?与C++比,go的开发效率高,具有清晰的依赖管理和全自动垃.原创 2021-08-19 11:48:11 · 2626 阅读 · 0 评论 -
全局变量和局部变量
全局变量和局部变量一、局部变量1 定义在{}里面的变量时局部变量,只能在{}里面有效 2 执行到定义的那句话,开始分配内存空间,离开作用域自动进行释放 3 作用域,就是变量作用的范围package main import "fmt" func test() { i := 111 fmt.Println("i=", i)} func main() { test() { i := 10 fmt.Printf("i=%v\n", i) } // i=12 错误原创 2021-08-18 16:55:03 · 2140 阅读 · 0 评论 -
Golang基础教程——map使用篇
声明与初始化golang中的map声明非常简单,我们用map关键字表示声明一个map,然后在方括号内填上key的类型,方括号外填上value的类型。var m map[string] int这样我们就声明好了一个map。但是要注意,这样声明得到的是一个空的map,map的零值是nil,可以理解成空指针。所以我们不能直接去操作这个m,否则会得到一个panic。panic: assignment to entry in nil mappanic在golang当中表示非常严重不可恢复的错误,可以恢原创 2021-08-18 16:40:18 · 3355 阅读 · 0 评论
分享