我正在尝试使用我使用的方法进行打印string,uint64但没有有效的strconv方法组合。
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,所以你必须给它:
strconv.Itoa()
int
log.Println("The amount is: " + strconv.Itoa(int(charge.Amount)))
但是要知道,如果int是 32 位(而uint6464位),这可能会失去精度,而且符号也不同。strconv.FormatUint()会更好,因为它需要一个类型的值uint64:
strconv.FormatUint()
log.Println("The amount is: " + strconv.FormatUint(charge.Amount, 10))
如果您的目的只是打印值,则无需将其转换为 toint或 to string,请使用以下之一:
log.Println("The amount is:", charge.Amount) log.Printf("The amount is: %d\n", charge.Amount)