今天,灵感一现:不能一个文件干到底吧,那要是工程大了怎么办?

答案很简单,“包”啊

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相关推荐

  1. 翻译下 golang package time

    # 关于 `package time` 个人体会:"wall clock" 可以理解为就是实际的时钟,而 "monotonic clock" 则是程序内部的时钟 ...

  2. golang package 是什么意思?一份来自初学者的golang package体验指南

    如果你有其他语言的基础,可见性应该很好理解. java的可见性是通过public private来描述的. python的可见性是通过_some_var下划线来约定的. 本文翻译自:https://w ...

  3. Golang --- package

    strings import "strings" strings包实现了用于操作字符的简单函数. strings.Index("suoning", " ...

  4. 【Golang 基础】Go 语言的程序结构

    Go 语言的项目结构    一般,一个 Go 项目在 GOPATH 下,会有如下三个目录 . ├── bin // 存放编译后的可执行文件 ├── pkg // 存放编译后的包文件 └── src / ...

  5. swift golang java,解决两数之和 (Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang)

    解决两数之和(Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang) 给定一个整数数组,返回两个数字的索引,以便它们加起来成为一个特定的目标. ...

  6. java golang速度_golang思考之运行速度

    有些资料显示golang的运行速度很慢,比Java慢,有时比Python慢.学习吧测试发现golang的运行速度和Java差不多. 首先,使用各种语言编写同一个CPU密集的程序sum. C(或C++) ...

  7. GitHub Package Registry 发布!你依旧是那个我们所爱的 GitHub!

    作者 | 韩骏 责编 | 沭七 2018 年 6 月微软宣布以 75 亿美元收购 GitHub.作为一名微软员工,在高兴之余,也会有一丝的担忧:收购之后,GitHub 的运营和发展会不会受到公司很大程 ...

  8. Golang bytes.Buffer 用法精述

    1.简介 bytes.Buffer 是 Golang 标准库中的缓冲区,具有读写方法和可变大小的字节存储功能.缓冲区的零值是一个待使用的空缓冲区.定义如下: type Buffer struct {b ...

  9. Golang 任意类型切片的增删改查

    文章目录 1.增加元素 1.1 使用 []interface{} 实现 1.2 使用 interface{} 实现 1.3 使用 interface{} 的优雅实现 2.删除元素 3.修改元素 4.查 ...

最新文章

  1. matlab中sinks,MATLAB Simulink模块库详解(二)Sinks篇
  2. UDP和TCP中的伪首部
  3. c语言函数打印零星,C语言零星笔记--(const、typedef)
  4. linux禁止客户端上传文件_实战 FastDFS Java 客户端上传文件
  5. Linux高并发应用类型对系统内核的优化
  6. **python基础函数(十一)
  7. 作为一个软件开发公司如何让自己的技术落地应用产生价值呢?
  8. oracle表单独创建完成之后,在加备注语法
  9. 疯狂连连看之开发游戏界面组件
  10. python做数据分析的包_Python数据分析包的学习
  11. 程序员入门必备经典书单
  12. ubuntu 服务器鼠标键盘无反应
  13. android wifi 文件共享,一个Android WiFi 文件共享程序
  14. 使用ThreeJs搭建BIM模型浏览器,超大模型的分时渲染
  15. tf.keras.metrics.Accuracy;tf.keras.metrics.Precision;tf.keras.metrics.Recall
  16. qt QTableWidgetItem设置文字样式
  17. 【LeetCode - Java】14. 最长公共前缀 (简单)
  18. 什么是All Hands Meeting?
  19. 发现一本自学单片机很好的书,推荐一下 王云51单片机C语言教程
  20. 美通企业日报 | 2019薪酬增长再放缓;大众将为卡塔尔世界杯提供自动驾驶车辆...

热门文章

  1. 使用charles 抓取手机上的操作
  2. javascript 减少回流
  3. PHP代码20个实用技巧(转)
  4. Java: IE Firefox下载文件中文乱码的兼容代码
  5. 四色原型图进行业务建模的思考
  6. Python - 排序( 插入, 冒泡, 快速, 二分 )
  7. 《Drupal实战》——3.3 使用Views创建列表
  8. 不用开发实现RDS RDWeb门户美化和个性化
  9. 报错型sql注入原理分析
  10. Zookeeper概述、特点、数据模型