Как получить 2d слайс

На вход получаю слайс строк, например ["95", "46"]. Нужно сделать функцию, которая преобразует эти элементы по символу и отправляет их в двумерный слайс. Попробовал сделать так, но ответ не соответствует ожидаемому. Получаю: [[9] [5] [4] [6]], а нужно [[9 5] [4 6]]

package main

import "fmt"

func divideStr(strs []string) [][]string {
    res := make([][]string, 0)
    for i := range strs {
        chars := []rune(strs[i])
        for i := 0; i < len(chars); i++ {
            char := []string{}
            char = append(char, string(chars[i]))
            res = append(res, char)
        }
    }
    return res
}
func main() {
    fmt.Println(divideStr([]string{"95", "46"}))
}

Подскажите как исправить код, чтобы получить ожидаемый результат?


Ответы (1 шт):

Автор решения: Xander

Я поправил, теперь выдаёт ожидаемый результат:

package main

import "fmt"

func divideStr(strs []string) [][]string {
    res := make([][]string, 0)
    for i := range strs {
        // Переписал отсюда
        runes := []rune(strs[i])
        chars := []string{}
        for j := 0; j < len(runes); j++ {
            chars = append(chars, string(runes[j]))
        }
        res = append(res, chars)
        // до этого места
    }
    return res
}
func main() {
    fmt.Println(divideStr([]string{"95", "46"}))
}
→ Ссылка