Golang package
今天,灵感一现:不能一个文件干到底吧,那要是工程大了怎么办?
答案很简单,“包”啊
GO里的包,看起来很简单,但又不简单
一开始,我想当然的以为就是include 路径一样的问题
事实是,GO以GOPATH环境变量来管理的,其实,从你在应用标准包根本没有路径一说,就应该能猜到这个该死的结果了
好了,下边,我们以一个例子来说明,避免网上那些看似很仔细的说,但就是怎么也说不明白的症结吧!
一 找到你的GOPATH
echo $GOPATH
/root/gopkg //我的位置在这里,你自己的肯定不一样吧,当然,要是你跟我设置一样,那就是这个了
二 我们自己库源码要放入的位置
$GOPATH/src/other
三 gin-1.go , gin-2.go源码
//gin-1.go
package other
import (
"fmt"
)
func Show1() {
fmt.Println("1 is ok")
}
//gin-2.go
package other
import (
"fmt"
)
func Show2() {
fmt.Println("2 is ok")
}
四 编译与安装我们的other库
在ohter 父目录下执行
go build other
go install other
然后在$GOPATH/pkg/linux_amd64下会找到们生成库other.a
五 祝贺你,现在你可以用other这个包了
//gin-main.go
package main
import (
"other"
)
func main() {
other.Show1()
other.Show2()
}
//运行
go build gin-main.go
./gin-main
1 is ok
2 is ok
看,我们成功调用了自定义的GO库
开心吧?哈哈哈
Finally:
这个问题,在实际工程开发中意义还是十分巨大的,希望你能理解并应用
当然,别问我,为何你说的这么清楚?网上却找不到这样的博文
应该去问,那些人为何说不明白,哈哈哈哈!
转载于:https://www.cnblogs.com/woodzcl/p/7560736.html
Golang package相关推荐
- 翻译下 golang package time
# 关于 `package time` 个人体会:"wall clock" 可以理解为就是实际的时钟,而 "monotonic clock" 则是程序内部的时钟 ...
- golang package 是什么意思?一份来自初学者的golang package体验指南
如果你有其他语言的基础,可见性应该很好理解. java的可见性是通过public private来描述的. python的可见性是通过_some_var下划线来约定的. 本文翻译自:https://w ...
- Golang --- package
strings import "strings" strings包实现了用于操作字符的简单函数. strings.Index("suoning", " ...
- 【Golang 基础】Go 语言的程序结构
Go 语言的项目结构 一般,一个 Go 项目在 GOPATH 下,会有如下三个目录 . ├── bin // 存放编译后的可执行文件 ├── pkg // 存放编译后的包文件 └── src / ...
- swift golang java,解决两数之和 (Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang)
解决两数之和(Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang) 给定一个整数数组,返回两个数字的索引,以便它们加起来成为一个特定的目标. ...
- java golang速度_golang思考之运行速度
有些资料显示golang的运行速度很慢,比Java慢,有时比Python慢.学习吧测试发现golang的运行速度和Java差不多. 首先,使用各种语言编写同一个CPU密集的程序sum. C(或C++) ...
- GitHub Package Registry 发布!你依旧是那个我们所爱的 GitHub!
作者 | 韩骏 责编 | 沭七 2018 年 6 月微软宣布以 75 亿美元收购 GitHub.作为一名微软员工,在高兴之余,也会有一丝的担忧:收购之后,GitHub 的运营和发展会不会受到公司很大程 ...
- Golang bytes.Buffer 用法精述
1.简介 bytes.Buffer 是 Golang 标准库中的缓冲区,具有读写方法和可变大小的字节存储功能.缓冲区的零值是一个待使用的空缓冲区.定义如下: type Buffer struct {b ...
- Golang 任意类型切片的增删改查
文章目录 1.增加元素 1.1 使用 []interface{} 实现 1.2 使用 interface{} 实现 1.3 使用 interface{} 的优雅实现 2.删除元素 3.修改元素 4.查 ...
最新文章
- matlab中sinks,MATLAB Simulink模块库详解(二)Sinks篇
- UDP和TCP中的伪首部
- c语言函数打印零星,C语言零星笔记--(const、typedef)
- linux禁止客户端上传文件_实战 FastDFS Java 客户端上传文件
- Linux高并发应用类型对系统内核的优化
- **python基础函数(十一)
- 作为一个软件开发公司如何让自己的技术落地应用产生价值呢?
- oracle表单独创建完成之后,在加备注语法
- 疯狂连连看之开发游戏界面组件
- python做数据分析的包_Python数据分析包的学习
- 程序员入门必备经典书单
- ubuntu 服务器鼠标键盘无反应
- android wifi 文件共享,一个Android WiFi 文件共享程序
- 使用ThreeJs搭建BIM模型浏览器,超大模型的分时渲染
- tf.keras.metrics.Accuracy;tf.keras.metrics.Precision;tf.keras.metrics.Recall
- qt QTableWidgetItem设置文字样式
- 【LeetCode - Java】14. 最长公共前缀 (简单)
- 什么是All Hands Meeting?
- 发现一本自学单片机很好的书,推荐一下 王云51单片机C语言教程
- 美通企业日报 | 2019薪酬增长再放缓;大众将为卡塔尔世界杯提供自动驾驶车辆...