global error variable remains nil after initialization

前端 未结 2 1140
别跟我提以往
别跟我提以往 2021-01-27 01:37

When I initialize an error variable globally it seems that it\'s nil to another function in the same package.
I don\'t understand why is this code not panicing?

         


        
2条回答
  •  庸人自扰
    2021-01-27 01:46

    func main() {
        _, loadErr := os.Open("asdasd")
    

    You create a new, local variable loadErr, the global one is never set. Use just =, not :=, to use the global one.

    Edit: To hold the second value too, you have to predeclare the second variable:

    var f *os.File
    f, loadErr = os.Open("asdasd")
    

    Unfortunately, you can't use := here, as := will not consider non-local variables and just create a local variable in this case.

提交回复
热议问题