美文网首页
golang使用同目录下的文件,golang中的package使

golang使用同目录下的文件,golang中的package使

作者: firewt | 来源:发表于2019-04-10 11:54 被阅读0次

    同样先看几个文件:

    // main.go
    package main
    
    import (
        "./subpack" //这里是目录相对路径,不是包名
        "fmt"
    )
    
    func main(){
        fmt.Println(subpack.sub()) //这里的requests才是./requests目录中的package名称
        function() //因为是在同一个目录下,所以可以直接使用这个文件中的方法和变量等...
        //但是编译或运行的时候要这样:go build,而不用指出文件名go build main.go
        fmt.Println(subpack.VERSION)
    }
    
    // function.go
    package main
    
    import "fmt"
    
    func function(){
        fmt.Println("this main package, function func")
    }
    
    // subpack/subpack.go
    package subpack
    
    import (
        "fmt"
    )
    
    var VERSION string = "0.6"
    
    func Sub() string { //注意这里的首字母大写
        fmt.Println("subpack_name sub func")
        return "subpack_name sub func"
    }
    

    在golang 里面一个目录为一个package, 一个package级别的func, type, 变量, 常量, 这个package下的所有文件里的代码都可以随意访问, 也不需要首字母大写。看function.go中的function函数,由于function.gomain.go在同一个目录,所以main.go可以直接使用function.go中的这个function函数(main.go第11行直接使用了function)。

    引用其它目录中的文件需要import这个文件所在的文件夹相对位置,然后在代码中用这个文件中的package包名作为使用依据。看第三段代码,subpack文件夹main.go在同一个目录,subpack文件夹中有个subpack.go文件,所以main.go要import ./subpack这个文件夹,这个subpack.go文件的packagesubpack,并且Sub方法是首字母大写,所以main.go中可以用subpack.Sub()方法。

    PS:文件夹名文件夹内的文件package名称可以不一致,但是那样不符合语言规范,并且会很杂乱。

    还是python的import简洁、简单!!!golang一堆槽点!!!

    相关文章

      网友评论

          本文标题:golang使用同目录下的文件,golang中的package使

          本文链接:https://www.haomeiwen.com/subject/xkfniqtx.html