@beduin01

Как в Go перевести строку в массив чисел?

Вот у меня есть строка "1,3,5,6,8". Как мне из нее массив чисел получить?
  • Вопрос задан
  • 5085 просмотров
Пригласить эксперта
Ответы на вопрос 3
fastpars
@fastpars
1. получаем []string
https://golang.org/pkg/strings/#Split

2. создаем []int с длиной как у []string.
Есть 2 "правильных" варианта:
Если хотим наполнять через append, то используем :
make([]int, 0, len(mySliceOfStrings))

Или если хотим наполнять через индекс, то делаем так:
make([]int, len(mySliceOfStrings))
https://golang.org/ref/spec#Slice_types
https://golang.org/ref/spec#Length_and_capacity

3. проходимся for range по []string и наполняем []int.
https://golang.org/ref/spec#For_statements
https://golang.org/pkg/strconv/#Atoi

не забываем обрабатывать ошибки.
Ответ написан
Комментировать
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
Ответ написан
Комментировать
https://play.golang.org/p/gGU5-rsySS
package main

import (
	"fmt"
	"strconv"
	"strings"
)

func main() {
	str := "1,3,5,6,8,42"

	strs := strings.Split(str, ",")
	var ints []int
	for _, s := range strs {
		num, err := strconv.Atoi(s)
		if err == nil {
			ints = append(ints, num)
		}
	}

	fmt.Println(ints)
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы