Вот полный рабочий пример:
package main
import "strings"
func main() {
date := "2015-01-02"
month := strings.Split(date, "-")
println(month[0])
println(month[1])
println(month[2])
}
Выход:
2015
01
02
Playground
Может быть, вы не используете правильный "тире" характер? There are lots:
+-------+--------+----------+
| glyph | codes |
+-------+--------+----------+
| - | U+002D | - |
| ֊ | U+058A | ֊ |
| ־ | U+05BE | ־ |
| ᠆ | U+1806 | ᠆ |
| ‐ | U+2010 | ‐ |
| ‑ | U+2011 | ‑ |
| ‒ | U+2012 | ‒ |
| – | U+2013 | – |
| — | U+2014 | — |
| ― | U+2015 | ― |
| ⁻ | U+207B | ⁻ |
| ₋ | U+208B | ₋ |
| − | U+2212 | − |
| ﹘ | U+FE58 | ﹘ |
| ﹣ | U+FE63 | ﹣ |
| - | U+FF0D | - |
+-------+--------+----------+
Вот код, с другой входной строкой, также проливает индекс из исключения ограничений:
пакета главного
import "strings"
func main() {
date := "2015‐01‐02" // U+2010 dashes
month := strings.Split(date, "-")
println(month[0])
println(month[1])
println(month[2])
}
Playground.
Что-то выключено с ваша строка, когда я буквально запускаю эту строку и разбиваю ее, я получаю '[2015 10 04]'; –
Вам необходимо предоставить воспроизводимый пример: [Как создать минимальный, полный и проверенный пример.] (Http://stackoverflow.com/help/mcve) – peterSO