go context 为什么不建议保存在struct中
go context 应该尽可能地传递,而不是保存在 struct 中。这是因为 context 应该是一个与请求生命周期相关的对象,而不是一个永久性的对象。如果将 context 存储在 struct 中,则可能会让 context 的生命周期变得更长,从而导致内存泄漏或竞态条件等问题。
另外,将 context 存储在 struct 中还可能导致代码的不可测试性,因为测试时可能需要对 context 进行不同的修改,而这些修改可能需要在不同的测试用例中进行。如果 context 存储在 struct 中,则可能需要编写更多的测试代码来模拟不同的 context 修改情况。
因此,建议将 context 传递给需要它的函数,而不是将其存储在 struct 中。这样可以确保 context 的生命周期与请求的生命周期保持一致,并且可以方便地进行测试。
原文地址: https://www.cveoy.top/t/topic/bgmR 著作权归作者所有。请勿转载和采集!