有一些簡單的顏色操作,但輸出是錯誤的。我只是想知道這里發生了什么。
主.c:
package main
import (
"fmt"
"image/color"
)
func main() {
startColor := color.RGBA{0x34, 0xeb, 0x64, 0xff}
endColor := color.RGBA{0x34, 0xc9, 0xeb, 0xff}
fmt.Printf("%d-%d=%d\n", endColor.G, startColor.G, endColor.G-startColor.G)
}
輸出:
201-235=222
uj5u.com熱心網友回復:
color.RGBA.G是一個uint8。 由于 235 大于 201,但 uint8 不存盤像 -34 這樣的負數,因此該值是換行的。
沒有什么color具體的情況。您會得到相同的答案(222):
var g1, g2 uint8 = 0xc9, 0xeb
fmt.Println(g1 - g2)
所以沒什么不尋常的,只是標準的Go 無符號整數溢位包裝。它甚至不是未定義的行為。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/442999.html
上一篇:附加到切片-golang
