zoukankan      html  css  js  c++  java
  • 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:

    这个问题,在实际工程开发中意义还是十分巨大的,希望你能理解并应用

    当然,别问我,为何你说的这么清楚?网上却找不到这样的博文

    应该去问,那些人为何说不明白,哈哈哈哈!

  • 相关阅读:
    elasticsearch版本不同,批量查询也不相同
    lucene源码分析(4)Similarity相似度算法
    lucene源码分析(3)facet实例
    lucene-solr源码编译导入eclipse--转
    lucene源码分析(2)读取过程实例
    lucene源码分析(1)基本要素
    javascript 的位操作符转换推断
    WinJS.Binding.List与kendo.data.ObservableArray
    迷你MVVM框架 avalonjs 0.84发布
    迷你MVVM框架 avalonjs 入门教程
  • 原文地址:https://www.cnblogs.com/woodzcl/p/7560736.html
Copyright © 2011-2022 走看看