我想一个转换bool称为isExist一个string(true或false使用)string(isExist),但它不工作.在Go中这样做的惯用方法是什么?
bitSet := true
var bitSetVar int8
Run Code Online (Sandbox Code Playgroud)
我怎么能分配bitSet到bitSetVar的1
我可以做这个:
if bitSet {
bitSetVar = 1
} else {
bitSetVar = 0
}
Run Code Online (Sandbox Code Playgroud)
这是最好的方法吗?
http://play.golang.org/p/BoZkHC8_uA
我想将uint8转换为字符串,但无法弄清楚如何.
package main
import "fmt"
import "strconv"
func main() {
str := "Hello"
fmt.Println(str[1]) // 101
fmt.Println(strconv.Itoa(str[1]))
}
Run Code Online (Sandbox Code Playgroud)
这给了我 prog.go:11: cannot use str[1] (type uint8) as type int in function argument
[process exited with non-zero status]
任何的想法?
我想在golang中将字符串转换为整数.但我不知道字符串的格式.例如,"10"- > 10,"65.0"- > 65,"xx"- > 0,"11xx" - > 11,"xx11" - > 0
我做了一些搜索并找到了strconv.ParseInt().但它无法处理"65.0".所以我必须检查字符串的格式.
有没有更好的办法?
我正在玩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)
从我的观点来看,由于所有显式类型转换,上限值的计算似乎不必要复杂.
谢谢!
我习惯使用C/Java,我可以使用?:如:
func g(arg bool) int {
return mybool ? 3 : 45;
}
Run Code Online (Sandbox Code Playgroud)
由于Go没有三元运算符,我该怎么做呢?
当将float转换为int时,将舍弃小数。什么是干净的转换方法,以便将其舍入到最接近的整数。
x := int(3.6)
应该等于4而不是3。
我在网上发布了一个rune()在golang 中使用该功能的功能,但我很难查找它是什么.我正在阅读教程,对文档缺乏经验,因此很难找到我要找的东西.
具体来说,我试图了解为什么这会失败......
fmt.Println(rune("foo"))
Run Code Online (Sandbox Code Playgroud)
而这不是
fmt.Println([]rune("foo"))
Run Code Online (Sandbox Code Playgroud)