掘友等级
获得徽章 0
在Go语言中,我们可以将方法与结构体类型关联起来。这些方法可以分为两种接收者类型:值接收者(value receivers)和指针接收者(pointer receivers)。
值接收者:当方法的接收者是结构体的值类型时,该方法在处理接收者时操作的是接收者的拷贝,不会修改原始接收者本身。
指针接收者:相反,当方法的接收者是结构体的指针类型时,该方法在处理接收者时操作的是接收者的原始引用,因此可以修改原始接收者的内容。
在选择值接收者或指针接收者时,需要根据方法的预期行为来判断。一般而言,如果方法需要修改接收者或接收者中的数据,应该选择指针接收者。而如果方法仅需要读取接收者的数据或进行计算,可以选择值接收者。
性能优化部分之前一直没有去学习,对于数据的读写较为抽象,感觉对于我们的大项目,go已经有足够的性能了,不一定能用上。
在今天的学习中,我深入了解了HTTP框架和设计,特别是对路由设计的规范化和设计思路有了全新的理解。同时,我还学习了网络不同层次的设计,拓宽了我的知识视野。
单元测试在 Golang 开发中扮演着重要的角色。项目结构应该包含对应的源文件和测试用例文件。测试用例文件名应该以 _test.go 结尾。使用 go test 命令可以自动生成并执行测试用的可执行文件。性能测试系统还能提供代码性能数据,帮助测试者分析性能问题。测试函数用于测试 Add 函数的功能。运行 go test 命令可执行该测试用例,并显示测试结果。
在 Go 中,使用空结构体作为 Map 的值可以有效地优化内存使用,因为 Map 的值在 Go 中是没有被使用的时候会被垃圾回收器回收的,而空结构体不占用任何内存空间。这种技巧通常被称为 "空结构体优化" 或 "零内存占用"。
学习了一下性能优化,这门课程讲授速度较快,几十分钟内涵盖了相当于几个小时的知识点,感觉没适应过来可能比较难。
今天在青训营学习了关于单元测试的一些基础知识。通过实践,我现在掌握了函数测试和mock插桩的方法,以后会尝试更多单元测试的实践和应用。这些新学习的知识将帮助我编写更安全、可靠的代码。
今天我在青训营上学习了第1节课《后端基础语法》,老师的授课风格简洁紧凑,在实践中,我们进行了三个例子,其中我最感兴趣的是Socks5代理。使用Go语言来实现这个常用协议时,不需要涉及其他语言中复杂的多线程、协程知识。
今天学习了如何通过 GOPROXY 来解决第三方库使用困难的问题。通过配置代理环境,可以选择 goproxy.io 或 athens.azurefd.net 作为代理,从而顺利访问所需的第三方包。这样一来,就能够更加便捷地使用这些库,提高开发效率。