我在尝试使用Go语言编程,并想知道在Go中进行语言风格的类型转换的最佳方法。我的问题基本上在于
以下是我构建的一个示例,我想知道这是否是编写此代码的语言风格或者我是否遗漏了某个重要的语言结构。
uint8
、uint64
和float64
之间的自动类型转换。从我在其他语言的经验来看,将uint8
与uint64
相乘将产生一个uint64
值,但在Go中并非如此。以下是我构建的一个示例,我想知道这是否是编写此代码的语言风格或者我是否遗漏了某个重要的语言结构。
package main
import ("math";"fmt")
const(Width=64)
func main() {
var index uint32
var bits uint8
index = 100
bits = 3
var c uint64
// This is the line of interest vvvv
c = uint64(math.Ceil(float64(index * uint32(bits))/float64(Width)))
fmt.Println("Test: %v\n", c)
}
我认为计算天花板值因为所有显式类型转换而变得不必要的复杂。
谢谢!
float64(b[0])
。请参见https://dev59.com/CmIk5IYBdhLWcg3wfOSe#62725637。 将float64设置为uint8/byte,使用byte(f)
。请参见https://dev59.com/XlsW5IYBdhLWcg3wT155#62753031。 - user12817546