Go项目结构和模块导入

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

项目结构

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

export GOPATH=/home/t/gospace

对于GOPATH,允许多个项目目录(Unix中为“:”,Windows中为“;”)。[en]For GOPATH, multiple project directories are allowed (“:” in Unix and “;” in Windows).

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

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

模块导入

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

当前文件与模型目录在同一目录下,但不建议以这种方式导入[en]The current file is in the same directory as the model directory, but it is not recommended to import in this way

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

前提条件是将项目添加到戈朗的GOPATH中[en]The prerequisite is to add the project to the GOPATH of golang

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

import的其他操作

点击操作的意思是,在导入包后,在调用包的函数时,可以省略前缀包名。[en]The meaning of the click operation is that after the package is imported, when you call the function of the package, you can omit the prefix package name.

import . "fmt"

func test() {
    Println("test")
}

别名操作是将包命名为另一个名称。[en]The alias operation is to name the package another name.

import f "fmt"

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

该操作实际上引入了包并调用包中的init函数,而不是直接使用包中的函数。[en]Instead of directly using the functions in the package, the operation actually introduces the package and calls the init function in the package.

文件1:模块/模块1.go[en]File 1: module/module1.go

package module1

import "fmt"

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

文件2:main.go[en]File 2: main.go

package main

import (
    "fmt"
    _ "module"
)

func main() {
    fmt.Println("this is a test")
}

output:

this is module1
this is a test

Original: https://www.cnblogs.com/coder2012/p/4816894.html
Author: cococo点点
Title: Go项目结构和模块导入

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/6036/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部