golang
已收录文章:14425篇
-
正文 在前一篇博客我们学习了 Go 数组,其要求所有元素为同一数据类型,如果希望存储不同类型的数据,就要用到结构体相关知识。 结构体的定义:存储相同或不同类型的数据集合。 有 C 相440 收藏
-
停止信号 channel 用于停止信号的场景还是挺多的,经常是关闭某个 channel 或者向 channel 发送一个元素,使得接收 channel 的那一方获知道此信息,进而做一些其他的操作。 任务定时 与 timer 结合,440 收藏
-
Go通过返回error类型显式处理网络错误,需每次操作后检查;2.常见错误包括连接超时、主机不可达、连接重置等,可通过*net.OpError类型断言判断;3.利用Temporary()和Timeout()方法区分临时性与永久性错误,指导重试策略。439 收藏
-
答案:本文介绍Golang中通过Cookie与Session管理用户状态的方法,涵盖Cookie的设置与读取、基于SessionID的会话跟踪、内存版Session管理实现,并强调安全性(Secure、HttpOnly、SameSite)、持久化(Redis)、JWT替代方案及第三方库使用建议。439 收藏
-
表格驱动测试通过将用例组织成表格提升代码可读性和扩展性。其核心在于集中管理测试用例,使用循环执行相同逻辑。1.定义包含name、input、expected等字段的测试表格;2.编写测试函数遍历表格,调用t.Run()执行子测试;3.对复杂场景可增加setup、teardown或结构体输入;4.注意其局限性,如处理复杂逻辑时灵活性不足及大表格影响可读性。439 收藏
-
init函数在Go程序中用于包级别初始化,执行顺序遵循依赖顺序和声明顺序。1.init函数在变量初始化后、main函数前自动执行;2.包依赖关系中,被导入的包先于导入者初始化;3.同一包内多个init函数按声明顺序执行;4.多层依赖下从最底层包开始逐层向上执行;5.包被多次导入时仅初始化一次;6.循环依赖会在编译时报错;7.使用时应避免复杂逻辑、注意副作用并考虑可测试性问题。439 收藏