golang中自定义包


本文摘自网络,作者,侵删。

导出

golang中默认以文件夹名作为包名,导入的文件的路径为$GOPATH/src

例如我们在 $GOPATH/src下面建立一个gopackage的一个文件夹,下面建立一个abc.go的文件,文件内容如下

package gopackage

import "fmt"

const X = 5
var Y = 10

// Add int 加
func Add(x, y int) int {
    return x + y
}

// Minus int 减
func Minus(x, y int) int {
    return x - y
}

func mutiply(x,y int) int {
    return x * y
} 

则我们在包外部使用gopackage包中的函数时,导入格式是这样的:

package main

import (
    "fmt"
    
    "gopackage"
)

func main() {
    x, y := gopackage.X, gopackage.Y
    fmt.Println(gopackage.Add(x, y))
    fmt.Println(gopackage.Minus(x, y))
    // fmt.Println(gopackage.mutiply(x,y)) //mutiply not exported by package gopackage
}

我们在abc.go文件中需要导出的函数的首字母都是大写的,这是因为只有首字母大写的标识符才可以导出,mutiply(int,int)int函数不可以被导出,编译失败。

别名

当我们使用多个自定义包时如果发生冲突,怎么办呢,我们可以给不同的包提供不同的别名

package main 

import (
    "fmt"
    
    calculate "gopackage"
)

func main(){
    // fmt.Println(gopackage.Add(x, y))
    fmt.Println(calculate.Add(1, 1)) //使用别名调用相应函数
}

如果abc.go文件中包名不是文件夹的名字,如

// package gopackage
package abc

则在外部导入是,golang会自动为该包提供别名

package main

import (
    "fmt"
    
    abc "gopackage"
)

本文来自:简书

感谢作者:小刀田田

查看原文:golang中自定义包

相关阅读 >>

Go语言学习6-字典类型

Go 语言常用排序

Go的值类型和引用类型1——传递和拷贝

反射三定律

Golang 如何类型转换

Golang | 一文带你快速入门context

Go语言循环嵌套

Golang能使用多核cpu吗

Go实现进制之前的转化

Golang接口可以嵌套吗

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...