我正在做一个简单的字符串。日期分裂。
格式为2015-10-04
month := strings.Split(date, "-")
输出为[2015 10 03]
。
如果我month[0]
它会返回2015年,但是当我执行月份[1]时,它会返回
panic: runtime error: index out of range
虽然它显然不是。我用错了吗?知道发生了什么事吗?
答案 0 :(得分:7)
这是一个完整的工作示例:
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
也许你没有使用正确的“破折号”字符? 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 | - |
+-------+--------+----------+
这是具有不同输入字符串的代码,它也会抛出索引超出范围的异常:
package main
import "strings"
func main() {
date := "2015‐01‐02" // U+2010 dashes
month := strings.Split(date, "-")
println(month[0])
println(month[1])
println(month[2])
}