首页 > 解决方案 > 我想格式化一个整数数组。如何发送数组以便每个动词接收数组的不同元素?

问题描述

我有一个可变的整数数组,我想将其格式化为字符串。当我传递数组时,它被放入第一个格式动词中,其余的被列为缺失。例如,我通过 [10, 100, 250, 99] 和“%02d-%04d-%04d-%02d”的格式。我希望它返回“10-0100-0250-99”。这样做的正确方法是什么?

package main

include (
    "fmt"
)

func main() {
    nums := []int{10,100,250,99}
    format := "%02d-%04d-%04d-%02d\n"

    fmt.Printf(format, 10, 100, 250, 99)
    fmt.Printf(format, nums)
}

[10 100 250 99]-%!d(MISSING)-%!d(MISSING)-%!d(MISSING)(错误)10-0100-0250-99(正确)

标签: go

解决方案


您要么需要单独传入元素:

nums := []int{10,100,250,99}
format := "%02d-%04d-%04d-%02d\n"
fmt.Printf(format, nums[0], nums[1], nums[2], nums[3])

或者使用正确的fmt.Printf参数类型,即[]interface{}

nums := []interface{}{10,100,250,99}
format := "%02d-%04d-%04d-%02d\n"
fmt.Printf(format, nums...)

推荐阅读