在golang彩包,存在得到的R,G,B的方法,從一個RGBA
對象一個值:爲什麼golang RGBA.RGBA()方法使用|和「?
func (c RGBA) RGBA() (r, g, b, a uint32) {
r = uint32(c.R)
r |= r << 8
g = uint32(c.G)
g |= g << 8
b = uint32(c.B)
b |= b << 8
a = uint32(c.A)
a |= a << 8
return
}
如果我要實現這個簡單的功能,我只寫此
func (c RGBA) RGBA() (r, g, b, a uint32) {
r = uint32(c.R)
g = uint32(c.G)
b = uint32(c.B)
a = uint32(c.A)
return
}
是什麼原因r |= r << 8
被使用?