go 使用自己写的包

参考《go语言编程入门与实战技巧》

操作系统:WIN10,IDE:goland

1.编写自己的包

(1)在$GOPATH/src路径下新建文件夹

这里我创建了一个名为mypkg的文件夹。

(2)在新建的文件夹下新建一个go文件

这里我创建了一个test.go文件。

(3)在goland中编写包

展开external libraries,在GOPATH的src下找到刚刚新建的文件并打开。

在文件中添加函数,这里添加了判断是否为奇数和是否为偶数的两个函数。

package even

func Even(i int) bool {
	return i % 2 == 0
}

func odd(i int) bool {
	return i % 2 == 1
}

2.使用自己的包

package main

import (
	"fmt"
	"mypkg"
)

func main() {
	i := 5
	fmt.Printf("Is %d even? %v\n", i, even.Even(i))
}

注意:这里使用了even包里的Even函数,如果使用odd函数会报以下错误:

这是因为odd是一个私有函数,在go语言中,并没有使用public和private这样的关键字来控制可见性,而是通过首字母大小写来控制的(包括函数和变量),大写表示可以被其他包访问,小写则不可以。

3.总结

上面的尝试中,我新建的路径名为mypkg,新建的go文件名为test.go,而实际的包名为even,关于这三个命名我分析如下。

首先,文件夹名是包的路径,也就是其他包调用时要import的,也就是说,其他包调用时需要import “文件夹”。

而文件名则是没有限制的,通常根据文件内容来起,事实上,一个文件夹下通常有多个go文件,这些文件的名称并无限制,但是同一路径下的go文件中“package 包名”这一行携带的包名一定要一样,否则会报错。

包名就是实际的go文件中“package 包名”中的包名,这是实际使用时需要的,也就是说,用法应该是这样:

import "文件夹名"

包名.函数名()

一般情况下,文件夹名和包名会起成一样的,go自带的包基本都是这样。

发布了17 篇原创文章 · 获赞 22 · 访问量 3031

猜你喜欢

转载自blog.csdn.net/u013536232/article/details/102950012