热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于golang:跟着老猫来搞GO环境搭建

老猫的GO学习系列博客曾经正式发车了,置信大家以前学习一门编程语言的时候也有教训,咱们个别都是从环境开始,在此呢,大家也跟着老猫从最开始的搭建环境开始。

老猫的GO学习系列博客曾经正式发车了,置信大家以前学习一门编程语言的时候也有教训,咱们个别都是从环境开始,在此呢,大家也跟着老猫从最开始的搭建环境开始。

GO语言的装置

首先呢,咱们开始须要下载GO语言的安装包。GO国外的官网地址是https://golang.org/,当然这个仅限于有条件的小伙伴去官网下载了。咱们个别下载呢都有所限度,不过没关系,在国内其实也有对应的网站为https://golang.google.cn/。还有一个网站中也能够下载,差不多是一个GO语言的学习社区,地址为https://studygolang.com/dl。比拟举荐后者,相干的中文英文文档也是比拟全的。拜访https://studygolang.com/dl关上是这样的:

大家依据本人的环境,抉择对应的安装包一步步装置即可。这个太简略了,就不开展了。

装置结束之后,大家在命令行运行go version命令失去相干的版本信息,那么就装置实现了。老猫因为之前就曾经装置过了,目前不是那个最新的版本,所以装置结束之后的版本信息如下。

国内镜像的配置

对于go环境搭建的过程中比拟重要的一点是镜像的配置,大家输出命令go env 能够看到相干go 语言的环境的一些配置。

goproxy设置

老猫以后的计算机环境是windows,所以看到的信息如上,下面有一个比拟重要的属性信息叫做goproxy,老猫目前的设置是https://goproxy.cn,direct,大家装置结束之后默认的地址应该是https://proxy/golang.org,direct。那么这个配置到底是做什么的呢?其实很简略,能够类比maven,这个其实也是一个依赖,配置这个代理信息之后,就会从近程的仓库拉取相干的go所须要依赖。前面的direct示意如果前者不能提供所须要的依赖那么咱们能够从新从其余第三方获取依赖,比方配置成某github的依赖。

大家如果网络上没有条件的话,配置成默认的地址应该是无奈拉取相干的依赖的,所以在此呢,最好配置成咱们国内的镜像。

老猫配置国内镜像其实次要参考这个网址:https://goproxy.cn/,关上之后,下面有具体的设置命名的,大家照着下面设置即可,当然这里有个坑点就是咱们的go的版本号必须是1.13以上,当然如果是下载的最新安装包的小伙伴其实是没有这个问题的。

GO111MODULE设置

下面的截图中咱们其实还看到一个比拟重要的属性,就是GO111MODULE,老猫查问了其余的一些材料。

在go1.11版本以前,想要对GO语言进行包治理,只能依赖第三方的库进行实现,比方Vendor,GoDep等等。然而在这之后,咱们就能够依据这个开关来实现包治理。

GO111MODULE这个开启或者敞开次要有三个值能够抉择:off、on 、auto,默认值是个“”,其实也就是auto。

  • GO111MODULE=off 无模块反对,go会从GOPATH和vendor文件寻找包。
  • GO111MODULE=on 模块反对,go会疏忽gopath和vendor文件夹,只依据go.mod下载依赖。
  • GO111MODULE=auto在$GOPATH/SRC里面且根目录有go.mod文件时开启模块反对。

以上这些形容其实听下来感觉是只知其一;不知其二的样子,在此其实也不必过多去纠结,因为在前面深刻的过程中,咱们就会缓缓体会了。当然后续老猫在和大家分享“依赖治理”的时候会和大家深刻地去探讨一下。在此呢,咱们将其属性设置成on。设置的命令下面也有。比拟须要留神的是,在设置的时候大家须要设置成小写的on才行,不要手误操作错了。

开发工具配置

下面介绍了相干go环境的配置其实到此曾经OK了,那么上面咱们就能够筛选一个比拟趁手的工具开始配置完之后撸代码了。其实go相干的开发工具有很多,比方vi,emacs,idea,eclipse,vscode,sublime..+go插件。当然IDE系列的也有goland的,大家也能够去官网进行下载。老猫接下来会其中一种开发工具,IDEA+GO插件的形式,因为老猫是JAVA后端,用惯了IDEA,所以在此也就先介绍这款配置。当然其余开发工具的相干配置,大家能够自行去度娘或者谷歌去找一下。

idea插件举荐

第一个插件当然是go插件,具体如下:

这是老猫本地的环境,曾经装置结束了。

另外一个插件是File Watcher,大家能够自行像下面那样搜寻之后进行install。这个工具其实是一个主动格式化的工具,当咱们保留文件的时候就会依照GO语言的规范进行格式化了。

装置结束之后咱们重启IDEA,而后建设一个GO我的项目,来写一个GO版本的HELLO WORLD。具体如下

咱们须要建设一个GO MODULE的我的项目,此处有个主见点就是proxy的时候,它默认会是default,咱们将其改成https://goproxy.cn,direct即可,当然这个门路就是咱们下面所配置的代理。因为我的项目临时不波及SQL,所以咱们间接下一步并且取名实现即可。

大家能够看一下老猫的我的项目。

留神点,这里进行new文件的时候,抉择simpleApplication类型的,点击运行,砸门的helloworld就显示在管制台上了。

下面老猫说的file watcher插件目前是不失效的,其实咱们还要进行设置一下,具体设置如下。

首先咱们须要将该设置去除。

而后咱们从新搜寻file watcher选中之后点击+号,增加goimports插件,如果说没有看到goimports插件,大家切换到命令行输出:go get -v golang.org/x/tools/cmd/goimports即可。

像老猫这样增加结束之后,而后重启IDEA即可。怎么进行验证装置胜利了呢,其实很简略,只有在前面的括号后面加上一个空格,而后保留一下就能看到成果了。

写在本章最初

跟着老猫做完这些,其实大家就曾经能够运行出hello world了。前面老猫会缓缓和大家介绍相干GO语言的语法、容器等等。别落伍哦!当然有什么疑难也欢送大家关注老猫的公众号“程序员老猫”。大家一起探讨,一起提高。


推荐阅读
  • 【并发编程】全面解析 Java 内存模型,一篇文章带你彻底掌握
    本文深入解析了 Java 内存模型(JMM),从基础概念到高级特性进行全面讲解,帮助读者彻底掌握 JMM 的核心原理和应用技巧。通过详细分析内存可见性、原子性和有序性等问题,结合实际代码示例,使开发者能够更好地理解和优化多线程并发程序。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • 使用 MyEclipse 和 TestNG 测试框架在 Java 中高效进行单元测试
    通过MyEclipse集成TestNG测试框架,可以在Java开发中高效地进行单元测试。本文介绍了在JDK 1.8.0_121和MyEclipse 10.0离线环境下配置和使用TestNG的具体步骤,帮助开发者提高测试效率和代码质量。 ... [详细]
  • 开发心得:深入探讨Servlet、Dubbo与MyBatis中的责任链模式应用
    开发心得:深入探讨Servlet、Dubbo与MyBatis中的责任链模式应用 ... [详细]
  • 在基于.NET框架的分层架构实践中,为了实现各层之间的松散耦合,本文详细探讨了依赖注入(DI)和控制反转(IoC)容器的设计与实现。通过合理的依赖管理和对象创建,确保了各层之间的单向调用关系,从而提高了系统的可维护性和扩展性。此外,文章还介绍了几种常见的IoC容器实现方式及其应用场景,为开发者提供了实用的参考。 ... [详细]
  • 在Java编程中,为了提高代码的可读性和执行效率,建议优先使用局部变量来存储方法的返回值,而不是多次调用同一个方法。这样不仅可以减少方法调用的开销,还能避免潜在的性能问题。此外,使用局部变量还可以增强代码的可维护性和调试便利性。 ... [详细]
  • 利用Java开发功能完备的电话簿应用程序,支持添加、查询与删除操作
    本研究基于Java语言开发了一款功能全面的电话簿应用程序,实现了与数据库的高效连接。该应用不仅支持添加、查询和删除联系人信息,还具备输出最大和最小ID号的功能,并能够对用户输入的ID号进行有效性验证,确保数据的准确性和完整性。详细实现方法可参阅相关文档。 ... [详细]
  • 本书详细介绍了在最新Linux 4.0内核环境下进行Java与Linux设备驱动开发的全面指南。内容涵盖设备驱动的基本概念、开发环境的搭建、操作系统对设备驱动的影响以及具体开发步骤和技巧。通过丰富的实例和深入的技术解析,帮助读者掌握设备驱动开发的核心技术和最佳实践。 ... [详细]
  • 在多模块项目中,项目A作为一个独立的工具包,不依赖于任何第三方库。其目录结构如下:`--src--main--java--resources`。当将项目A打包成JAR文件后,发现无法正确访问`resources`目录下的文件资源。这一问题可能源于JAR文件的构建配置或类路径设置不当,需要仔细检查Maven或Gradle的构建脚本,确保资源文件被正确包含并加载。 ... [详细]
  • Norton Partition Magic 中 PHP 函数 error_reporting(E_ALL ^ E_NOTICE) 的详细解析与应用
    在 Windows 环境下,通过具体示例分析了 `Norton Partition Magic` 中 `PHP` 函数 `error_reporting(E_ALL ^ E_NOTICE)` 的详细解析与应用。该函数用于控制错误报告级别,例如在从 PHP 4.3.0 升级到 4.3.1 后,程序出现多处错误的原因及解决方法。本文深入探讨了错误报告配置对程序稳定性的影响,并提供了实用的调试技巧。 ... [详细]
  • 使用CardView实现圆角和圆形效果:边角与半径的精准控制 ... [详细]
  • 如何在Spark数据排序过程中有效避免内存溢出(OOM)问题
    本文深入探讨了在使用Spark进行数据排序时如何有效预防内存溢出(OOM)问题。通过具体的代码示例,详细阐述了优化策略和技术手段,为读者在实际工作中遇到类似问题提供了宝贵的参考和指导。 ... [详细]
  • 本项目在Java Maven框架下,利用POI库实现了Excel数据的高效导入与导出功能。通过优化数据处理流程,提升了数据操作的性能和稳定性。项目已发布至GitHub,当前最新版本为0.0.5。该项目不仅适用于小型应用,也可扩展用于大型企业级系统,提供了灵活的数据管理解决方案。GitHub地址:https://github.com/83945105/holygrail,Maven坐标:`com.github.83945105:holygrail:0.0.5`。 ... [详细]
author-avatar
Devil灬旋律
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有