登录
首页 >  Golang >  Go问答

如何以动态方式处理整数数组的每个元素?

来源:stackoverflow

时间:2024-03-20 21:36:30 182浏览 收藏

当以字符串格式输出可变整数数组时,需要手动指定每个元素作为格式化动词的参数。这可以通过单独传入每个元素来实现,例如 `fmt.Printf(format, nums[0], nums[1], nums[2], nums[3])`。或者,可以使用 `[]interface{}` 类型作为 `fmt.Printf` 的参数,并使用 `...` 语法将数组展开,例如 `fmt.Printf(format, nums...)`。

问题内容

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

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(正确)


解决方案


您需要单独传入元素:

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

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>