范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

GO语言(十一)开始使用多模块工作区

  本教程介绍 Go 中多模块工作区的基础知识。使用多模块工作区,您可以告诉 Go 命令您正在同时在多个模块中编写代码,并轻松地在这些模块中构建和运行代码。
  在本教程中,您将在共享的多模块工作区中创建两个模块,对这些模块进行更改,并在构建中查看这些更改的结果。
  先决条件Go 1.18 或更高版本的安装。 用于编辑代码的工具。 您拥有的任何文本编辑器都可以正常工作。 一个命令终端。 Go 在 Linux 和 Mac 上的任何终端以及 Windows 中的 PowerShell 或 cmd 上都能很好地工作。
  本教程需要 go1.18 或更高版本。使用go.dev/dl中的链接确保您已在 Go 1.18 或更高版本中安装了 Go 。
  为您的代码创建一个模块
  首先,为您要编写的代码创建一个模块。
  1、打开命令提示符并切换到您的主目录。
  在 Linux 或 Mac 上: $ cd
  在 Windows 上: C:> cd %HOMEPATH%
  2、在命令提示符下,为您的代码创建一个名为工作区的目录。 $ mkdir workspace $ cd workspace
  3、初始化模块
  我们的示例将创建一个hello依赖于 golang.org/x/example 模块的新模块。
  创建你好模块: $ mkdir hello $ cd hello $ go mod init example.com/hello go: creating new go.mod: module example.com/hello
  使用 . 添加对 golang.org/x/example 模块的依赖项go get。 $ go get golang.org/x/example
  在 hello 目录下创建 hello.go,内容如下: package main  import (     "fmt"      "golang.org/x/example/stringutil" )  func main() {     fmt.Println(stringutil.Reverse("Hello")) }
  现在,运行 hello 程序: $ go run example.com/hello olleH
  创建工作区
  在这一步中,我们将创建一个go.work文件来指定模块的工作区。
  1、初始化工作区
  在workspace目录中,运行: $ go work init ./hello
  该go work init命令告诉为包含目录中模块的工作空间go创建一个文件 。go.work./hello
  该go命令生成一个go.work如下所示的文件: go 1.18  use ./hello
  该go.work文件的语法与go.mod相同。
  该go指令告诉 Go 应该使用哪个版本的 Go 来解释文件。它类似于文件中的go指令go.mod 。
  该use指令告诉 Go在进行构建时hello目录中的模块应该是主模块。
  所以在模块的任何子目录中workspace都会被激活。
  2、运行工作区目录下的程序
  在workspace目录中,运行: $ go run example.com/hello olleH
  Go 命令包括工作区中的所有模块作为主模块。这允许我们在模块中引用一个包,即使在模块之外。在模块或工作区之外运行go run命令会导致错误,因为该go命令不知道要使用哪些模块。
  接下来,我们将golang.org/x/example模块的本地副本添加到工作区。然后,我们将向stringutil包中添加一个新函数,我们可以使用它来代替Reverse.
  下载和修改golang.org/x/example模块
  在这一步中,我们将下载包含该模块的 Git 存储库的副本golang.org/x/example,将其添加到工作区,然后向其中添加一个我们将从 hello 程序中使用的新函数。
  1、克隆存储库
  在工作区目录中,运行git命令来克隆存储库: $ git clone https://go.googlesource.com/example Cloning into "example"... remote: Total 165 (delta 27), reused 165 (delta 27) Receiving objects: 100% (165/165), 434.18 KiB | 1022.00 KiB/s, done. Resolving deltas: 100% (27/27), done.
  2、将模块添加到工作区 $ go work use ./example
  该go work use命令将一个新模块添加到 go.work 文件中。它现在看起来像这样: go 1.18  use (     ./hello     ./example )
  该模块现在包括example.com/hello模块和 `golang.org/x/example 模块。
  这将允许我们使用我们将在模块副本中编写的新代码,而不是使用命令stringutil下载的模块缓存中的模块版本。
  3、添加新功能。
  我们将向golang.org/x/example/stringutil包中添加一个新函数以将字符串大写。
  将新文件夹添加到workspace/example/stringutil包含以下内容的目录: package stringutil  import "unicode"  // ToUpper uppercases all the runes in its argument string. func ToUpper(s string) string {     r := []rune(s)     for i := range r {         r[i] = unicode.ToUpper(r[i])     }     return string(r) }
  4、修改hello程序以使用该功能。
  修改workspace/hello/hello.go的内容以包含以下内容: package main  import (     "fmt"      "golang.org/x/example/stringutil" )  func main() {     fmt.Println(stringutil.ToUpper("Hello")) }
  在工作区运行代码
  从工作区目录,运行 $ go run example/hello HELLO
  Go 命令在go.work文件指定的hello目录中查找命令行中指定的example.com/hello模块 ,同样使用go.work文件解析导入golang.org/x/example。
  go.work可以用来代替添加replace 指令以跨多个模块工作。
  由于这两个模块在同一个工作区中,因此很容易在一个模块中进行更改并在另一个模块中使用它。
  未来的一步
  现在,要正确发布这些模块,我们需要发布golang.org/x/example 模块,例如在v0.1.0. 这通常通过在模块的版本控制存储库上标记提交来完成。发布完成后,我们可以增加对 golang.org/x/example模块的要求hello/go.mod: cd hello go get example.com/dep@v0.1.0
  这样,该go命令可以正确解析工作区之外的模块。

由于仪表和发动机性能有效期临期,科学号实验舱不得不发射上天航天界有三大声名远播的鸽王,分别是如下几个NO3,太空发射系统(SLS)火箭,2011年开始制造,原计划2017年发射,然而目前还躺在地上(噢,不对,已经立起来了)。NO2,韦伯太让你台式机网络不再卡顿,游戏中吃鸡不再掉线!随着互联网经济的发展,现代人无论是在生活还是工作中都越来越离不开网络的应用。因而网速的快慢,对我们来说至关重要。一旦,网速变慢或突然掉线,尤其是工作中被打断,重头再来也不是不可能。中俄飞船都是陆地降落,美国选择海上降落是因为技术难度低吗?我国神舟载人飞船和俄罗斯的联盟号飞船,每次返回都是在陆地着陆的,而美国的龙飞船却是在海上溅落。为什么会有两种降落方式,哪一种更优呢?波音飞船陆地着落测试有人说陆地上降落更难,也有人核动力全电推进电磁弹射航母要交付,电磁弹射技术有什么优点?被美国媒体称为全球50年内都无法超越,连俄罗斯都赞叹的全球首艘全电推电磁弹射配置的航母就要服役了!这艘排水量超过12万吨,全电推进的核动力航母肯尼迪号,配置了4套电磁弹射器,清一色德国空气合成氨技术获诺贝尔奖,我国二氧化碳合成淀粉能获奖吗?科学界最高荣誉奖诺贝尔奖又开始了,6个奖项将在2021年10月4日至2021年10月11日陆续揭晓。诺贝尔奖组委会构成对于吃瓜群众来说,哪个外国人获得奖不重要,因为不怎么了解,更关美国大学团队成功使用星链卫星进行定位,精度小于8米,不输GPS作为世界最大的星座系统,Spacex的星链卫星几乎占据全世界卫星总数的一半。2021年Spacex发射载荷占比如此庞大的卫星群,它们可不仅仅只有宽带互联网功能,记得之前小编曾经写过神舟十三号翻转竖飞,与空间站实施径向对接,技术难度有多大?稳!神舟十三号飞船顺利升空,6小时后与天和号核心舱对接成功,三位宇航员顺利进入空间站,整个过程行云流水一气呵成!长征2F带着神舟飞船升空与之前我国载人航天相比,神舟十三号发射有太多RX5500双十二发布,同时带来一张更厉害的显卡,1660见了直发抖Hello大家好,我是兼容机之家的咖啡。双十一才过去不久,双十二马上就要来临了。据悉,AMD有意在双十二发布新入门级显卡RX5500,直接竞争NVIDIA的新品GTX1650sup3k左右的电脑配9600KF我可以不玩3A游戏,但你不能没有这个性能Hello大家好,我是兼容机之家的咖啡。朋友上次在某宝和拼夕夕看了很多所谓吃鸡电脑游戏主机i7级处理器后,竟然拿着上面的配置单来找我配电脑。虽然很是无语,但是作为朋友,我还是跟他讲抚州五菱荣光新卡最高优惠3。01,欢迎到店赏车汽车报价早知道五菱汽车抚州国鼎销售中心店,五菱荣光新卡限时特惠大酬宾,10。2910。29直降0。15万元,有购车意向的朋友不妨亲自去试驾一下,店铺地址抚州市文昌大道与迎宾大道交叉iPhone12十条新特性汇总,第一条就很厉害,更小或者没有刘海Hello大家好,我是兼容机之家的小牛!这才年初,距离苹果9月份的苹果发布会还有一段时间,虽然如此,但是最近关于iPhone12的消息不绝于耳。这里有张关于iPhone12的十条新
采用增程式动力系统,百公里油耗0。7L,天际ME5实力强吗?自从理想ONE的问世,可谓是打开了我们自主品牌增程式汽车的大门,越来越多的品牌开始在这一领域埋头苦干,并且也打造出了其他的增程式汽车,而来自天际汽车旗下的天际ME5就是其中之一,并苹果秋季发布会档期曝光!除了iPhone14,这几个新品也值得期待今年的节奏真的很快,前有14没出直接爆料15的,现在又来WWDC还没开就已经要畅想秋季发布会,我看是没有那么必要。目前据iDropNews消息,苹果秋季发布会已经敲定在9月13日。iPhone14发布会定档,799美元起9月13日见,目前有哪些爆料?不期待,毕竟Pro和ProMax这两大升级的家伙,我是买不起的!!!从2017年iPhoneX发布之后苹果已经鲜有创新,无论是外观(刘海屏)还是体验,每年的iPhone旗舰必然都是iPhone关机仍可被攻击引热议,苹果安卓用户一整个无语住了金磊发自凹非寺量子位公众号QbitAI关机的iPhone,它就安全了吗?最近一项来自德国达姆施塔特工业大学的研究,便直接回答了这个问题恶意软件,仍然可以正常运行。研究的名字也是非常李彦宏数字经济发展要找到新动能,以更大魄力变革机制障碍澎湃新闻记者邵冰燕5月17日,全国政协举办推动数字经济持续健康发展专题协商会,近百位全国政协委员参加会议。全国政协委员百度创始人董事长兼CEO李彦宏等大型民营科技企业负责人也受邀参如果这些操作系统没有消失,会不会干翻iOS摘要在智能机刚涌现的10年前,手机操作系统还没有三足鼎立,一些系统短暂的出现,成为那时候百家齐鸣的见证人。在智能机刚涌现的10年前,手机操作系统还没有三足鼎立,一些系统短暂的出现,微观中国从长江存储闪存芯片突破看中国制造转型近日,国产存储芯片大厂长江存储已经向客户交付了自主研发的192层的3DNAND闪存,并且预计在今年底将会大规模交付的消息被外媒披露。再结合前段时间的消息,就是长江存储推出了UFS3Linux系统中Shell脚本编写的一点心得作为一个软件测试人员,经常会跟开发打交道,产品开发阶段,他们经常会提供一些python,shell等脚本作为bug的临时解决方案以方便测试继续进行。最近接触的shell脚本比较频繁英伟达GTX1630入门显卡规格曝光512CUDA核心,64bit显存IT之家5月19日消息,今天,Videocardz曝光了英伟达即将推出的GTX1630入门显卡的规格信息。据报道,这是英伟达首款第一款GTXx30型号,之前30级显卡只能称为GT。中国信通院余晓晖十四五新型基础设施市场规模有望超10万亿元算力设施将迎来巨大发展21世纪经济报道记者缴翼飞北京报道在5月17日举行的2022世界电信和信息社会日大会主论坛上,中国信息通信研究院院长余晓晖表示,数字经济发展需要新型基础设施建设的支撑,新型基础设施创新,让科学轻量化呈现(新语)科普视频降低了公众获取和理解知识的门槛,拓展了知识生产和传播的边界,有助于营造全民科普的良好氛围二氧化碳怎么变成淀粉?黑土地为何被称为耕地中的大熊猫?一元二次方程与规范场论究竟有何