快乐的程序员
go gin框架学习总结 go gin框架学习总结
简介Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 hello worldpackage main import ( "github.com/gin-gonic/gin"
2024-03-13
go泛型set go泛型set
写在前面今天项目中需要用到string类型的set,想起来项目中不少地方都需要,而且都是用map[string]bool实现的,既然这么多地方用到set去重,为什么不写一个set呢?而且go现在支持了泛型,为啥不写一个支持多种类型的set呢
2024-03-13
在函数内部能修改入参slice吗?不一定 在函数内部能修改入参slice吗?不一定
写在前面本文主要是考察对slice的底层理解,知识点就是slice struct有一个dataPtr,是一个指向数组的指针。理解这一点就能理解本问题,但是这个地方极易容易出错。 举个例子func testSlice1(arr []int)
2024-03-13
100行代码实现迭代器模式,开箱即用 100行代码实现迭代器模式,开箱即用
迭代器模式介绍迭代器模式定义 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。 简单理解:对容器内元素遍历 2.迭代器模式角色划分 迭代器角色(Iterator):定义遍历元素所需
Go type知识点解析 Go type知识点解析
写在前面本文主要讲一下type的两种用法 定义新类型type可以定义新类型,包括结构体、接口、函数、通道等 type Person struct { Name string Age int } type Reader in
2024-03-13
面试题:给一个数字n,请你用2个线程分别输出奇数和偶数,要求最终输出顺序是递增的 面试题:给一个数字n,请你用2个线程分别输出奇数和偶数,要求最终输出顺序是递增的
题目描述请你用你熟悉的语言,实现:给一个数字n,用2个线程分别输出1,3,5,7,9,…和2,4,6,8,10,…,一直到n,但最终输出的结果是1,2,3,4,5,6,7,8,9,10,…,n 示例n=100 结果:1,2,3,…,99,1
2024-03-13
GO 函数内部能改变数组元素吗 GO 函数内部能改变数组元素吗
写在前面很多人对数组和切片以及函数参数理解不够深刻。今天就来讲一讲 数组和切片go中数组类型包括元素数量,即 [1]int,[2]int,[3]int这是3个不同的数据类型。 切面底层是指向一个数组的结构体,并且数组的大小、地址可能会发生变
2024-03-13
GO每日一题(7) GO每日一题(7)
`# 下面代码会输出什么 type People struct { Gender bool Name string } func (p *People) GetName() string { return p.Name } t
2024-03-13
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
3 / 6