zoukankan      html  css  js  c++  java
  • Go项目结构和模块导入

    Go项目结构和模块导入

    golang项目结构与其他语言类似,但是仍然有一些需要注意的地方。

    项目结构

    环境配置

    go 命令依赖一个重要的环境变量:$GOPATH,它表示GO项目的路径,如下设置

    export GOPATH=/home/t/gospace
    

    对于GOPATH来说,允许多个项目目录(Unix中为“:”,Windows中为“;”)。

    项目目录

    在项目目录中,一般包含三个文件夹,分别为srcpkgbin。各个文件夹功能如下,

    • src 存放golang源码
    • pkg 存放编译后的文件
    • bin 存放编译后可执行的文件

    模块导入

    在golang中,模块导入包括两种导入方式:相对路径和绝对路径。

    相对导入

    当前文件同一目录的model目录,但是不建议这种方式来import

    import (
        "./test1"
        "../test2"
    )
    

    绝对导入

    前提条件需要把该项目加入到golang的GOPATH中,

    import (
        "project/module1"
        "project/module2/t"
    )
    

    import的其他操作

    点操作

    点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,

    import . "fmt"
    
    func test() {
        Println("test")
    }
    

    别名操作

    别名操作就是把包命名成另一个名字

    import f "fmt"
    
    func test() {
        f.Println("test")
    }
    

    _操作

    操作其实是引入该包,而不直接使用包里面的函数,而是调用了该包里面的init函数

    文件1: module/module1.go

    package module1
    
    import "fmt"
    
    func init() {
       fmt.Println("this is module1")
    }
    
    

    文件2: main.go

    package main
    
    import (
        "fmt"
        _ "module"
    )
    
    func main() {
        fmt.Println("this is a test")
    }
    

    output:

    this is module1
    this is a test
    
  • 相关阅读:
    第一次结对作业
    第一次博客作业
    个人总结
    第三次个人作业
    第二次结对作业
    第一次结对作业
    第一次个人编程作业
    第一次博客作业
    第三次个人作业——用例图设计
    第二次结对作业
  • 原文地址:https://www.cnblogs.com/coder2012/p/4816894.html
Copyright © 2011-2022 走看看