1. 局部变量未成功赋值到全局变量

    var engine *xorm.Engine
    
    func init(){
        engine, err := xorm.NewEngine("sqlite3", "./test.db")
    }
    

    由于init方法内使用:=符号,所以engine和err均为新定义的局部变量,engine并未成功赋值到全局变量,修改方法如下:

    var engine *xorm.Engine
    
    func init(){
        var err error
        engine, err = xorm.NewEngine("sqlite3", "./test.db")
    }
    
  2. 包已经正确放在GOPATH下,但是始终无法导入paint包,原因是这个包名和代码中的paint方法冲突了。修改下方法名或者给paint包取个别名就行。

    import(
        "github.com/anthonynsimon/bild/paint"
    )
    
    func main(){
        paint()
    }
    
    func paint(){
        //...
    }
    
  3. 使用exec包执行命令行时,若使用Run方法会卡住程序,使用Start方法可以启动命令行而不卡住程序

    func run(){
        exec.Command("python", "-c", cmdStr).Run()
    }
    
    func start(){
        exec.Command("python", "-c", cmdStr).Start()
    }