提案详情
这是 atomic.Bool
和 CompareAndSwap
的当前文档:
// CompareAndSwap executes the compare-and-swap operation for the boolean value x.
func (x *Bool) CompareAndSwap(old, new bool) (swapped bool) {
return CompareAndSwapUint32(&x.v, b32(old), b32(new))
}
这只适用于特殊情况 Bool
:仅从阅读类型 bool * bool -> bool
来看,不清楚返回值是第一个参数还是第二个参数,或者是其他布尔值。文档注解只是陈述了显而易见的事实(CompareAndSwap 进行比较并交换),而我认为 swapped
是模糊的,因为它可以意味着替换后的值 new,替换前的值 old,或者表示交换操作已完成。
提案的目的是澄清文档注解,例如(假设这是正确的):
// CompareAndSwap executes the compare-and-swap operation for the boolean value x.
// It returns true if the swap was done.
我不是以英语为母语的人,所以可能有更好的措辞。
3条答案
按热度按时间kmbjn2e31#
在这种情况下,结果的名称告诉您结果的意义。这是命名结果参数的一个有用的例子:用于文档。
ht4b089n2#
将此从提案过程中移除,没有理由将其视为提案。
arknldoa3#
https://go.dev/cl/572179提到了这个问题:
sync/atomic: add clarifying sentence to comment for *Bool.CompareAndSwap