我正在玩Go,并想知道在Go中执行惯用类型转换的最佳方法是什么.基本上我的问题之间的自动类型转换中规定uint8,uint64和float64.根据我对其他语言的经验,a uint8与a 的乘法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)
}
Run Code Online (Sandbox Code Playgroud)
从我的观点来看,由于所有显式类型转换,上限值的计算似乎不必要复杂.
谢谢!
我在网上发布了一个rune()在golang 中使用该功能的功能,但我很难查找它是什么.我正在阅读教程,对文档缺乏经验,因此很难找到我要找的东西.
具体来说,我试图了解为什么这会失败......
fmt.Println(rune("foo"))
Run Code Online (Sandbox Code Playgroud)
而这不是
fmt.Println([]rune("foo"))
Run Code Online (Sandbox Code Playgroud) go ×2