快乐的程序员
GO结构体的空指针和interface{}类型的区别 GO结构体的空指针和interface{}类型的区别
写在前面直接上代码 type People struct { Gender bool Name string } func main() { var data *People var in interface{} fmt.
2024-03-13
GO json解析遇到的坑 GO json解析遇到的坑
写在前面在写go的时候经常用到序列化、反序列化,记录一下遇到过的坑。 空指针会被解析成字符串”null”type Person struct { Name string Age int } func main() { var p
2024-03-13
GO 关闭http请求的几种方式 GO 关闭http请求的几种方式
写在前面面试的时候问到如何关闭http请求,一般人脱口而出的是关闭response.body,这是错误的。response是返回结果的一个结构体,跟http连接没有关系。 type Response struct { Status
2024-03-13
GO每日一题(6) GO每日一题(6)
下面这段代码会输出什么func test(i int) (ret int) { ret = i * 2 if ret > 10 { ret := 10 return } return } func main() {
2024-03-13
面试:如何设计高并发系统 面试:如何设计高并发系统
写在前面面试的时候经常会被问到如何设计一个高并发系统,很多人都只能说出缓存、读写分离、异步等几个常见方法,今天就系统全面总结一下这个问题,希望能帮助到大家。 什么是高并发系统简单说就是你的系统要能支持瞬间大量的请求。比如淘宝双11、过年抢红
2024-03-13
Leetcode 第 98 场双周赛 Leetcode 第 98 场双周赛
第一题:替换一个数字后的最大差值题目给你一个整数 num 。你知道 Danny Mittal 会偷偷将 0 到 9 中的一个数字 替换 成另一个数字。 请你返回将 num 中 恰好
2024-03-13
CDN介绍 CDN介绍
写在前面对一次网络请求过程的了解程度,一是展现你的专业知识;二是深刻的理解,让你在大型网站架构中做出更适合、可靠的架构。而DNS是这一切的出发点,本文结合一张常用架构图,来描述一下这个过程。 部署架构 这里来解释下,为什么要这样架构。&nb
2024-03-13
GO-select 的实现原理 GO-select 的实现原理
概述select是go提供的一种跟并发相关的语法,非常有用。本文将介绍 Go 语言中的 select 的实现原理,包括 select 的结构和常见问题、编译期间的多种优化以及运行时的执行过程。 se
2024-03-13
正则表达式悲观回溯 正则表达式悲观回溯
写在前面正则表达式一直以来褒贬不一,大家有疑问的地方主要就是它的悲观回溯问题,今天就来详细讨论一下这个问题。 前几天有小伙伴来求救说页面上有一个 input 框,随着用户不断输入内容,页面响应会越来越慢直到完全失去响应。 简单沟通过后得知具
2024-03-13
GO每日一题(5) GO每日一题(5)
下面这段代码有什么问题func (m map[string]string) Set(key string, value string) { m[key] = value } func main() { m := make(map[st
2024-03-13
GO语言make和new的区别 GO语言make和new的区别
写在前面虽然 make 和 new  都是能够用于初始化数据结构,但是它们两者能够初始化的结构类型却有着较大的不同;make 在 Go 语言中只能用于初始化语言中的3种类型:sli
2024-03-13
GO每日一题(4) GO每日一题(4)
下面这段代码输出什么type People struct { name string `json:"name"` } func main() { js := `{ "name":"11" }` var p
2024-03-13
15 / 23