首页 > 其他分享 >go包依赖管理-构建完整的依赖项目:目录结构及包的调用

go包依赖管理-构建完整的依赖项目:目录结构及包的调用

时间:2023-09-15 16:01:07浏览次数:33  
标签:依赖 hello greetings go 及包 com example bash

目录结构:

<home>/
 |-- greetings/
 |-- hello/

1.分别进入对应目录创建以上目录结构
//bash切换到用户主目录
 cd $HOMEPAHT$ 
//bash新建greetings目录并进入该目录
mkdir greetings
cd greetings
//bash创建模组example.com/greetings
$ go mod init example.com/greetings
go: creating new go.mod: module example.com/greetings
当前目录下新增greetings.go代码程序
package greetings

import "fmt"

// Hello returns a greeting for the named person.
func Hello(name string) string {
    // Return a greeting that embeds the name in a message.
    message := fmt.Sprintf("Hi, %v. Welcome!", name)
    return message
}

//bash切换到用户主目录

 cd $HOMEPAHT$ 
//bash新建hello目录并进入该目录
mkdir hello
cd hello
//bash创建模组example.com/hello

$ go mod init example.com/hello
go: creating new go.mod: module example.com/hello

2.当前目录下新增hello.go代码程序

package main

import (
    "fmt"
    "example.com/greetings"
)

func main() {
    // Get a greeting message and print it.
    message := greetings.Hello("Gladys")
    fmt.Println(message)
}

3.bash引用包重定向

$ go mod edit -replace example.com/greetings=../greetings

4.bash检查当前模块的依赖关系,并移除不需要的依赖项。

$ go mod tidy

5.bash当前目录下执行go命令,系统自动会从当前目录内搜索main.go入口程序

$ go run .
Hi, Gladys. Welcome!
注:GitHub上面包的调用与此类似,不用第3部的重定向。将url地址前段的https://去掉即可(线上包的调用可能存在不可用的情况,要进行测试是否仍然可调用)
go语言的编码原则有很多要注意的地方,比如同一目录下共用一个包名,函数或方法可以互相调用。但是只有以大写字母开头的函数或方法,才能被外部包调用。一个项目有且仅有一个main.go
入口和package main包,通过入口调用同级或下级目录包及函数......编码规则后续根据学习情况,再做总结

参考来源:https://go.dev/doc

标签:依赖,hello,greetings,go,及包,com,example,bash
From: https://www.cnblogs.com/mylive/p/17705213.html

相关文章

  • django—实现前端页面批量删除功能
    views.py代码:fromdjango.shortcutsimportrender,redirectfrom.modelsimportYourModel#使用你实际的模型名称替换defbatch_delete(request):ifrequest.method=='POST':ids=request.POST.get('ids')ifids:......
  • [Maven] 阿里仓库里的依赖版本号比较少
    我的init.gradle第一项配置的mavenLocal(),第二项是阿里,第三项没有配置境外网址。有一个老版本号的组件(idea版本早,内置的gradle版本低,所以相关的组件,默认也低),一直拉取不到。解决:(1)先去本地maven仓库找,组件的这个版本号下面,有一个.lock文件,证明gradle来这里拉取,但是没有。(2)我打开......
  • 问题记录:vue项目中的babel转化器是否可以转换npm install下来的依赖库,使该依赖库也可
    vue项目中的babel转化器是否可以转换npminstall下来的依赖库,使该依赖库也可以兼容es6语法?是的,Babel转换器可以用于转换通过npminstall安装的依赖库,以使其兼容ES6语法。Babel是一个广泛使用的JavaScript编译器,可以将较新版本的JavaScript代码转换为向后兼容的版本,以便在不支持这......
  • Nodejs+Express+MongoDB实战
    项目安装安装express脚手架:npminstallexpress-generator-g创建项目:express-eproject-e代表使用ejs模板,project是项目名称进入项目:npminstall下载依赖包安装nodemon:npminstallnodemon-g使用nodemon来启动项目,不用node来启动启动项目:npmstart,端口号在www启动文件中可以......
  • nodejs+koa2+mongodb 从0到1搭建自己的项目
    nodejs+koa2+mongodb从0到1搭建自己的项目YDJFE2018-09-2811:2419207   相信这对于想要入门写nodejs的朋友来说,一定会有所收获,那么,下面开始我们的正题(这里不使用koa-generator脚手架,我们直接自己搭建项目,适用于前后端分离)一:创建项目可以在全局中安装koa依赖包......
  • C# NUGET包自动复制依赖项
    在csproj中配置如下内容:<TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput>以及这个:<TargetName="CopyProjectReferencesToPackage"DependsOnTargets="......
  • golang工具值generate
     示例:大家经常碰到命名错误码、状态码的同时,又要同步写码对应的翻译,有没有感觉很无聊。这里举一个例子:packagemain​import"fmt"​//定义错误码const(ERR_CODE_OK=0//OKERR_CODE_INVALID_PARAMS=1//无效参数ERR_CODE_TIMEOUT......
  • ERROR OGG-01224 Oracle GoldenGate Capture for Oracle, p_lion.prm: Address al
    我的ogg版本OracleGoldenGateCommandInterpreterforOracleVersion12.3.0.1.4OGGCORE_12.3.0.1.0_PLATFORMS_180415.0359_FBOLinux,x64,64bit(optimized),Oracle11gonApr15201821:16:09OperatingsystemcharactersetidentifiedasUTF-8.报错信息2023......
  • gopup:Python公开数据仓库
    GoPUP支持Python3.7+,旨在使获取数据尽可能方便,主要用于学术研究目的。GoPUP项目所采集的数据皆来自公开的数据源,不涉及任何个人隐私数据和非公开数据。同时本项目提供的数据接口及相关数据仅用于学术研究,任何个人、机构及团体使用本项目的数据接口及相关数据请注意商业风险。......
  • 个人微信API对接-Golang版本
    golang版个人微信号API,突破登录限制,类似开发公众号一样,开发个人微信号微信机器人......