go sync/atomic: describe return value of atomic.Bool CompareAndSwap

fcipmucu  于 7个月前  发布在  Go
关注(0)|答案(3)|浏览(57)

提案详情

这是 atomic.BoolCompareAndSwap 的当前文档:

// 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.

我不是以英语为母语的人,所以可能有更好的措辞。

参考文献

kmbjn2e3

kmbjn2e31#

在这种情况下,结果的名称告诉您结果的意义。这是命名结果参数的一个有用的例子:用于文档。

ht4b089n

ht4b089n2#

将此从提案过程中移除,没有理由将其视为提案。

arknldoa

arknldoa3#

https://go.dev/cl/572179提到了这个问题:sync/atomic: add clarifying sentence to comment for *Bool.CompareAndSwap

相关问题