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