Go 我想格式化一个整数数组。如何发送数组,以便每个谓词接收数组的不同元素?
我有一个整数的可变数组,我想将其格式化为字符串。当我传递数组时,它被放入第一个格式动词,其余的列为缺失。例如,我通过了[10100125099]和%02d-%04d-%04d-%02d的格式。我要它退回10-0100-0250-99。在围棋中正确的方法是什么 包干管 包括 fmt func main{ nums:=[]整数{10100250,99} 格式:=%02d-%04d-%04d-%02d\n 格式打印格式,1010025099 格式打印格式,nums } [10 100 250 99]%!dMISSING-%!dMISSING-%!承认错误Go 我想格式化一个整数数组。如何发送数组,以便每个谓词接收数组的不同元素?,go,Go,我有一个整数的可变数组,我想将其格式化为字符串。当我传递数组时,它被放入第一个格式动词,其余的列为缺失。例如,我通过了[10100125099]和%02d-%04d-%04d-%02d的格式。我要它退回10-0100-0250-99。在围棋中正确的方法是什么 包干管 包括 fmt func main{ nums:=[]整数{10100250,99} 格式:=%02d-%04d-%04d-%02d\n 格式打印格式,1010025099 格式打印格式,nums } [10 100 250 99]%
10-0100-0250-99正确您需要单独传入元素:
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参数使用正确的类型,即[]接口{}:
第一个选项是有效的,但是,我并不总是有4个元素。使用[]接口{}的第二个选项产生相同的错误结果。在找到长期结果之前,我可以对数组的长度使用switch语句。它应该始终在4到8个元素之间,直到我硬编码为止。@MichaelLewis:我不确定你的意思,它们产生相同的结果。当然,您必须切换长度以匹配格式字符串。
nums := []interface{}{10,100,250,99}
format := "%02d-%04d-%04d-%02d\n"
fmt.Printf(format, nums...)