Я хочу отформатировать массив целых чисел.Как отправить массив так, чтобы каждый глагол получал отдельный элемент массива? - PullRequest
0 голосов
/ 07 июня 2019

У меня есть переменный массив целых чисел, который я хотел бы отформатировать в строку.Когда я передаю массив, он помещается в глагол первого формата, а остальные отображаются как отсутствующие.Например, я передаю [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 (правильно)

1 Ответ

6 голосов
/ 07 июня 2019

Вам необходимо либо передать элементы по отдельности:

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...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...