go-015自定义包

阅读量: zyh 2020-11-21 17:11:12
Categories: > Tags:

main包

主程序需要引用package main,只有引用了main,才可以编译生成二进制程序。

自定义包

包代码

<$GOHOME/src/packageName>/sum.go

package calculator // 包名

var logMessage = "[LOG]"

// Version of the calculator
var Version = "1.0"

func internalSum(number int) int {
    return number - 1
}

// Sum two integer numbers
func Sum(number1, number2 int) int {
    return number1 + number2
}

package 定义包名

go约定:小写开头的仅用于包内部,大写开头的包内外均可以用.

模块

Go通过模块引用包。

模块通常包含可提供相关功能的包。 包的模块还指定了 Go 运行你组合在一起的代码所需的上下文。 此上下文信息包括编写代码时所用的 Go 版本。

cd <$GOHOME/src/packageName>
go mod init github.com/myuser/calculator

init 后是模块名,也是下载地址,go通过这个地址去下载。

包调用

主程序:<$GOHOME/src/packageName>/main.go

通过模块名调用包

package main

import (
  "fmt"
  "github.com/myuser/calculator"
)

func main() {
    total := calculator.Sum(3, 5) //通过模块名直接引用包下sum.go中的Sum()函数
    fmt.Println(total)
    fmt.Println("Version: ", calculator.Version)
}

初始化主程序模块

go mod init helloworld

修正模块文件

告知go引用本地模块 calculator 包

module helloworld

go 1.14

require github.com/myuser/calculator v0.0.0

replace github.com/myuser/calculator => ../calculator

replace关键词指定模块的本地路径