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

跟着老猫一起来学GO,环境搭建

老猫的GO学习系列博客已经正式发车了,相信大家以前学习一门编程语言的时候也有经验,咱们一般都是从环境开始,在此呢,大家也跟着老猫从最开始的搭建环境开始。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语言的语法、容器等等。别掉队哦!当然有什么疑问也欢迎大家关注老猫的公众号“程序员老猫”。大家一起探讨,一起进步。


推荐阅读
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • 开发心得:深入探讨Servlet、Dubbo与MyBatis中的责任链模式应用
    开发心得:深入探讨Servlet、Dubbo与MyBatis中的责任链模式应用 ... [详细]
  • Java 零基础入门:SQL Server 学习笔记(第21篇)
    Java 零基础入门:SQL Server 学习笔记(第21篇) ... [详细]
  • Java Web开发中的JSP:三大指令、九大隐式对象与动作标签详解
    在Java Web开发中,JSP(Java Server Pages)是一种重要的技术,用于构建动态网页。本文详细介绍了JSP的三大指令、九大隐式对象以及动作标签。三大指令包括页面指令、包含指令和标签库指令,它们分别用于设置页面属性、引入其他文件和定义自定义标签。九大隐式对象则涵盖了请求、响应、会话、应用上下文等关键组件,为开发者提供了便捷的操作接口。动作标签则通过预定义的动作来简化页面逻辑,提高开发效率。这些内容对于理解和掌握JSP技术具有重要意义。 ... [详细]
  • 如何在 IntelliJ IDEA 中高效搭建和运行 Spring Boot 项目
    本文详细介绍了如何在 IntelliJ IDEA 中高效搭建和运行 Spring Boot 项目,涵盖了项目创建、配置及常见问题的解决方案。通过本指南,开发者可以快速掌握在 IntelliJ IDEA 中进行 Spring Boot 开发的最佳实践,提高开发效率。 ... [详细]
  • PyTorch 使用问题:解决导入 torch 后 torch.cuda.is_available() 返回 False 的方法
    在配置 PyTorch 时,遇到 `torch.cuda.is_available()` 返回 `False` 的问题。本文总结了多种解决方案,并分享了个人在 PyCharm、Python 和 Anaconda3 环境下成功配置 CUDA 的经验,以帮助读者避免常见错误并顺利使用 GPU 加速。 ... [详细]
  • 在多模块项目中,项目A作为一个独立的工具包,不依赖于任何第三方库。其目录结构如下:`--src--main--java--resources`。当将项目A打包成JAR文件后,发现无法正确访问`resources`目录下的文件资源。这一问题可能源于JAR文件的构建配置或类路径设置不当,需要仔细检查Maven或Gradle的构建脚本,确保资源文件被正确包含并加载。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 使用 MyEclipse 和 TestNG 测试框架在 Java 中高效进行单元测试
    通过MyEclipse集成TestNG测试框架,可以在Java开发中高效地进行单元测试。本文介绍了在JDK 1.8.0_121和MyEclipse 10.0离线环境下配置和使用TestNG的具体步骤,帮助开发者提高测试效率和代码质量。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 本文详细解析了如何使用 jQuery 实现一个在浏览器地址栏运行的射击游戏。通过源代码分析,展示了关键的 JavaScript 技术和实现方法,并提供了在线演示链接供读者参考。此外,还介绍了如何在 Visual Studio Code 中进行开发和调试,为开发者提供了实用的技巧和建议。 ... [详细]
  • Java中高级工程师面试必备:JVM核心知识点全面解析
    对于软件开发人员而言,随着技术框架的不断演进和成熟,许多高级功能已经被高度封装,使得初级开发者只需掌握基本用法即可迅速完成项目。然而,对于中高级工程师而言,深入了解Java虚拟机(JVM)的核心知识点是必不可少的。这不仅有助于优化性能和解决复杂问题,还能在面试中脱颖而出。本文将全面解析JVM的关键概念和技术细节,帮助读者全面提升技术水平。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • Java 8 引入了 Stream API,这一新特性极大地增强了集合数据的处理能力。通过 Stream API,开发者可以更加高效、简洁地进行集合数据的遍历、过滤和转换操作。本文将详细解析 Stream API 的核心概念和常见用法,帮助读者更好地理解和应用这一强大的工具。 ... [详细]
author-avatar
0o墨滴成殇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有