\u00A0是微软office里用的空格而不是代码里常用的utf8空格\u0020。通常从网上拷贝黏贴代码时会遇到这种情况。比如下面这段代码:
package main
import (
"fmt"
"time"
)
func main() {
strs := []string{"one","two", "three"}
for _, s := range strs {
go func() {
time.Sleep(1 * time.Second)
fmt.Printf("%s ", s)
}()
}
time.Sleep(3 * time.Second)
}
fmt/build/run都会报下面错误:
example.go:10:1: illegal character U+00A0
example.go:12:1: illegal character U+00A0
example.go:12:3: illegal character U+00A0
example.go:12:5: illegal character U+00A0
example.go:13:1: illegal character U+00A0
example.go:13:3: illegal character U+00A0
example.go:13:5: illegal character U+00A0
example.go:13:8: illegal character U+00A0
example.go:13:11: illegal character U+00A0
example.go:14:1: illegal character U+00A0
example.go:14:3: illegal character U+00A0
example.go:14:5: illegal character U+00A0
example.go:14:8: illegal character U+00A0
example.go:14:11: illegal character U+00A0
example.go:15:1: illegal character U+00A0
example.go:15:3: illegal character U+00A0
example.go:15:5: illegal character U+00A0
exit status 2
解决办法:
\u00A0是个可见字符,根据报错信息里提示的行列把字符选中拷贝,然后在编辑器文本替换里把它全部替换成普通空格。比如说10行1列这个字符: