主要观点:
- 在 Go 编程中,存在将
ok
用于各种场景的约定,但这种约定存在问题,如可能导致代码可读性降低、难以重构等。 - 提出了更好的替代方案,即“exists”约定,用于存在性检查变量命名,能使代码更清晰、易读、易重构。
- 除了存在性检查,在接收可能关闭的通道时使用
ok
也存在问题,可使用received
替代。 - 在类型断言中使用
ok
是个例外,不会出现上述问题。
关键信息和重要细节:
- 在 Go 中,有个关于命名的玩笑,提到计算机科学中的两个难题及
off-by-one
错误,进而引出关于 Go 中布尔变量命名的讨论。 - 如在
map
存在性检查中,普遍约定用ok
表示变量,但这会带来一些问题,如代码重构时易出错。 ok
约定已超出map
存在性检查,扩展到其他相关领域,如Dolt
的代码中。- 以
Dolt
的三向合并代码为例,展示了ok
约定带来的问题,如变量名重复导致代码逻辑混乱。 - 提出的“exists”约定能避免
ok
约定的问题,使代码更清晰,如在Dolt
的代码修改中体现。 - 在接收可能关闭的通道时,使用
ok
也有问题,可使用received
替代。 - 类型断言中使用
ok
是个例外,不会出现上述问题。
总结:Go 编程中ok
约定存在问题,应采用“exists”约定替代,同时在接收可能关闭的通道和类型断言中要注意使用合适的命名方式,以提高代码的可读性和可维护性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。