我想格式化一个整数数组。如何发送数组,以便每个动词接收数组的不同元素?

时间:2019-06-07 18:32:12

标签: go

我有一个整数可变数组,我想将其格式化为字符串。当我传递数组时,将其放置在第一个格式动词中,其余的列为丢失。例如,我传递[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(缺失)-%!d(缺失)-%!d(缺失)(错误) 10-0100-0250-99(正确)

1 个答案:

答案 0 :(得分:6)

您要么需要分别传递元素:

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...)