我正在尝试使用我使用的方法的组合来打印 a string
,uint64
但strconv
我使用的方法没有奏效。
log.Println("The amount is: " + strconv.Itoa((charge.Amount)))
给我:
cannot use charge.Amount (type uint64) as type int in argument to strconv.Itoa
我怎样才能打印这个string
?
我正在尝试使用我使用的方法的组合来打印 a string
,uint64
但strconv
我使用的方法没有奏效。
log.Println("The amount is: " + strconv.Itoa((charge.Amount)))
给我:
cannot use charge.Amount (type uint64) as type int in argument to strconv.Itoa
我怎样才能打印这个string
?
strconv.Itoa()
需要一个 type 的值int
,所以你必须给它:
log.Println("The amount is: " + strconv.Itoa(int(charge.Amount)))
但是要知道,如果int
是 32 位(uint64
而是 64 位),这可能会丢失精度,符号也不同。strconv.FormatUint()
会更好,因为它需要一个 type 的值uint64
:
log.Println("The amount is: " + strconv.FormatUint(charge.Amount, 10))
有关更多选项,请参阅此答案:Golang: format a string without printing?
如果您的目的只是打印值,则无需将其转换为 toint
或 to string
,请使用以下之一:
log.Println("The amount is:", charge.Amount)
log.Printf("The amount is: %d\n", charge.Amount)
如果要转换int64
为string
,可以使用:
strconv.FormatInt(time.Now().Unix(), 10)
或者
strconv.FormatUint
如果你真的想把它保存在一个字符串中,你可以使用 Sprint 函数之一。例如:
myString := fmt.Sprintf("%v", charge.Amount)
log.Printf("The amount is: %d\n", charge.Amount)
如果您来这里是为了了解如何将字符串转换为 uint64,这就是它的完成方式:
newNumber, err := strconv.ParseUint("100", 10, 64)