首页

/

友链

/

分享

/

内推

/

关于


一个想当然的bug

许久不写Python,"".split(",") 的结果我已经不能脑内运算了:

In [1]: "".split(",")
Out[1]: ['']

我记成了 "".split(",") 的运算结果是 [],因此,昨天在debug这段代码(Golang)的时候花了我好一会儿:

$ cat main.go
package main

import (
    "fmt"
    "strings"
)

func main() {
    l := strings.Split("", ",")
    if len(l) > 0 {
        fmt.Printf("l: %+v\n", l)
    }
}

执行一下:

$ go run main.go
l: []

问题主要在于:

解决方案

使用 %#v 替代 %+v:

$ cat main.go
package main

import (
    "fmt"
    "strings"
)

func main() {
    l := strings.Split("", ",")
    if len(l) > 0 {
        fmt.Printf("l: %#v\n", l)
    }
}
$ go run main.go
l: []string{""}