【Golang】来用GoLand开发第一个Go程序

news2024/11/20 20:27:15

​ 📓推荐网站(不断完善中):个人博客

​ 📌个人主页:个人主页

​ 👉相关专栏:CSDN专栏、个人专栏

​ 🏝立志赚钱,干活想躺,瞎分享的摸鱼工程师一枚


文章目录

  • 🍊前言
  • 1.关于GoLand的工具
    • 1.1.安装过程
    • 1.2.安装完成
  • 2.快速上手
    • 2.1.创建项目
    • 2.2.创建 `.go` 程序文件
    • 2.3.配置 `mod` 的开启与关闭
    • 2.4.用 GoLand 写第一份代码
    • 2.5.代码静态检测(此部分非必要)
  • 3.GoLand常用快捷键
  • 🍊写在最后


🍊前言

不同的人对于开发工具的习惯还是不一样的,所以博主还是决定,简单出一份关于 GoLand 的使用教程,方便于在开发过程中不同的开发习惯。

但是在此还是希望如果是刚刚入门的小白们,要明白的一点是无论是编程语言还是编程工具,他们都应该是处于一个可切换的状态,并不是一门语言和一个 IDE工具 就阻挡下你的脚步,加油!

1.关于GoLand的工具

GoLand 是一款由捷克软件开发公司 JetBrains 专为 Go 开发的跨平台的商业 IDE。Goland 具有 Strong Code Insight、Navigation & Search、Run & Debug、Integration with VCSs、More than just a Go IDE 以及较强的 Extensibility,能够帮助 Gopher 轻松愉悦方便快捷地 read 和 write Go code。

JetBrains 公司出品的 IDE,在业界有着良好的口碑,比如 CLion for C/C++、IntellijI IDEA for Java、PyCharm for Python、PhpStorm for PHP、WebStorm for JavaScript 等。Goland 一经推出,受到了广大 Gopher 的喜爱。(当然因为敏感的原因,本教程并不教学如何破解软件,请大家自行百度。也可以选择使用VSCode,如有能力则可以购买正式版)

在此附上 GoLand官方下载地址 点这里

1.1.安装过程

  • 没有什么特别复杂的操作,基本点击 下一步 即可
  • 可以根据自己的习惯将项目安装在自己想要的目录下,尽量不要出现 中文名文件夹路径
  • 根据自己的系统选择安装的型号如是64位系统在选项界面勾选 .64.go 即可

1.2.安装完成

在安装完成后(当然你可以先免费用一个月),就可以看到这样的界面,就可以开始准备我们的 Go 之旅啦!

0401

New Project: 表示新建一个项目

Open: 表示打开一个项目

Get from VCS: 表示从版本管理器中打开项目(SVN、Gitee、GitHub)


2.快速上手

2.1.创建项目

任何工具的第一步实际上都是要先学会如何创建一个项目,那么我们在使用GoLand也是一样,从创建一个项目开始。

选择我们的 New Project ,那么我们就会看到如下界面

0402

选择 Go 项目,如果选择带有 GOPATH 标记的则表示将项目默认创建在你配置好的 GOPATH 空间下(不懂 GOPATH 可以回看博主之前的文章)

在 GoLand 中,一个项目就可以作为一个工作空间,所以选择 Go 则表示要将这个新建的项目作为一个独立的工作空间进行开发

Location: 表示当前项目的位置

GOROOT: 表示你GO环境的开发包安装位置,这个如果在环境变量已经配置好的情况下会自动帮你填写,如果没配置建议先配置好环境变量。

Environment: Go 的一些 mod 可能需要外网下载,因为一些不可描述的原因我们无法访问,因此可以通过配置 GOPROXY 代理来改变代理成国内的下载代理,这个可以暂时先不配置。(想配置 GOPROXY 可以查看 VSCode 配置篇)

项目创建成功的界面

0403

2.2.创建 .go 程序文件

在对项目新建做完基础讲解后,我们可以开始创建我们的新 .go 文件了

  • 点击我们的项目 右键->New->Go File 选择创建一个简单的应用

    0404

    • 创建 Simple application 会得到一个带有简单 main 函数的文件,这是一个程序的入口
  • 创建好的代码内容如下:

    0405

2.3.配置 mod 的开启与关闭

在我们的本地环境中我们可以通过指令来配置 go mod 模块管理的开启与关闭,而在我们的 Goland 中我们也可以通过设置来改变 go mod 的启用,我们在使用 Goland 的时候可以开启 go mod

  • Preferences ->Go ->Go Modules 进行设置,如下:

    0406
  • 关于代理: 因我我们众所周知一些原因,所以代理可以修改为国内,方便获取资源,留下以下几种资源地址

    • 注意:代理修改完,重启 GoLand 生效
    • 阿里云
      • https://mirrors.aliyun.com/goproxy/
    • nexus 社区提供的
      • https://gonexus.dev
    • goproxy.io 的
      • https://goproxy.io/
    • 官方提供的
      • https://proxy.golang.org
    • 七牛云赞助支持的
      • https://goproxy.cn
  • 是否使用 go mod 的区别:

    • 开启mod:go env -w GO111MODULE=on ,会将包下载到 gopath 下的 pkg 下的 mod 文件夹中
    • 关闭mod:go env -w GO111MODULE=off ,会将包下载到 gopath 下的 src 下
    • go env GO111MODULE=auto 只有当前目录在 GOPATH/src 目录之外而且当前目录包含 go.mod 文件或者其子目录包含 go.mod文件才会启用

2.4.用 GoLand 写第一份代码

在刚刚我们已经新建了一个带有 main.go 文件,那么我们接下来就需要在 main() 中写下我们的第一份代码, Goland 是相对比较智能的,很多基础包不需要你去写 import ,你只需要直接写你要的工具模块,它就会自动帮你导入相关的模块。

  • 因此你只需要在 main 中手动输入自己的第一份代码,即可!

    fmt.Println("Hello Let's GO!") // 在终端打印
    
    // 输入相关代码后Goland就会自动帮你导入`fmt`
    
  • 点击运行按钮(在右上角有一个绿色的▶️)

    0407
  • 得到运行结果

    0408

2.5.代码静态检测(此部分非必要)

我们之前有说过,Go 语言对于代码的检测和格式是有自己官方的统一规范和自动化的,所以就减少了出现不同程序不同的代码风格导致相互之间可阅读性降低的问题。

使用 GoLand 编写 Go 代码时,可以配合 gofmt + goimports + golangci-lint 在保存时完成对代码的格式化和质量检测。

  • 开启 go fmt: 在每次保存代码文件时自动格式化代码。

    • File > Settings > Tools > File Watchers > + > go fmt

      0409
  • 开启 goimports 在每次保存代码时自动添加缺失的和删除未引用的包。

    • File > Settings > Tools > File Watchers > + > goimports

      • 如果遇到 tools 工具没安装, Goland 则会提醒你安装

        0410
      • 如果安装失败,则可能是国内代理的原因,请修改代理(这里不再重复赘述,可参考前一篇文章内容)

  • **开启 golandci-lint: ** 开启 golangci-lint 可以对代码进行静态检查,比如报告函数行数超标、文件行数超标等来帮助规范代码

    • File > Settings > Tools > File Watchers > + > golangci-lint

      0411
  • 至此,工具安装完成!


3.GoLand常用快捷键

  • 文件相关快捷键:

    • CTRL + E: 打开最近浏览过的文件

    • CTRL + SHIFT + E: 打开最近修改的文件

    • CTRL + N: 可以快速打开struct结构体

    • CTRL + SHIFT + N: 可以快速打开文件

  • 代码格式化

    • CTRL + ALT + T: 可以把代码包在一个快哪,例如 if {…} else {…}
    • CTRL + ALT + L: 格式化代码
    • CTRL + SPACE: 代码提示
    • CTRL + /: 单行注释。CTRL+SHIFT+/:多行注释
    • CTRL + B: 快速打开光标处的结构体或者方法
    • CTRL + " + / - ": 可以将当前方法进行展开或折叠
  • 查找和定位

    • CTRL + R:替换文本
    • CTRL + F:查找文本
    • CTRL + SHIFT + F:进行全局查找
    • CTRL + G: 快速定位到某行
  • 代码常用

    • ALT + Q: 可以看到当前方法的声明。
    • SHIFT + ENTER: 可以向下插入新行。即使光标在当前行的中间
    • CTRL + Backspace: 按单词进行删除或删除光标所在行
    • CTRL + X剪切当前光标所在行
    • CTRL + D:复制当前光标所在行。
    • ALT + SHIFT+UP/DOWN:可以将光标所在行的代码上下移动。
    • CTRL + SHIFT+U:可以将选中内容进行大小写转化。

🍊写在最后

本文主要是教学基本的 GoLand 使用,以及如何使用该工具开发第一个Go程序,以上为个人分享,如有问题请指正!(还是提醒各位入门的同好们,工具无论是GoLand或是VSCode并没有绝对的高下之分)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/29031.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JAVA程序设计】基于JAVA的坦克大战小游戏--入门级小游戏

基于JAVA的坦克大战小游戏--入门级小游戏零、项目获取一、项目简介二、开发环境三、游戏玩法四、运行截图零、项目获取 获取方式(点击下载):是云猿实战 项目经过多人测试运行,可以确保100%成功运行。 一、项目简介 本项目是基于…

基于Java+Spring+Strusts2+Hibernate 社区智慧养老服务平台 系统设计与实现

一.项目介绍 本系统分为前端 和 后端 两块, 前端包括:首页、健康新闻、疾病预防、养生之道、动态通知、登录和注册 各模块的文章点击查看,支持评论以及回复功能, 登录成功之后点击欢迎您:后面的账号即可进入后台管理 后端包括&…

老杨说运维 | 非常重要,事关转型

《荀子》有云:“水能载舟,亦能覆舟。”在公司日常运营过程中,数据指标就像是水,孕育着生命,承载着万物。科学的数据指标能指引公司在正确的道路上不断前进,使平淡无常的业务焕发新生,而不合理的…

Qt QUndoStack、QUndoCommand(实现撤回和回撤)

用到的类: 1 QUndoStack: 一个存放 QUndoCommand 命令的栈. 2 QUndoCommand:The QUndoCommand class is the base class of all commands stored on a QUndoStack. 3 QUndoView:The QUndoView class displays the contents of a QUndoStack.&…

C#上位机系列(3)—定时器和串口的介绍

本文是讲解C#.net平台的Winform框架下的第三个内容,手把手介绍上位机项目的创建方式以及一些写软件时常用的功能,讲解从零开始的每一个步骤。 本次介绍上位机中定时器的使用和串口的配置 定时器:每过一段设定好的时间进入执行函数&#xff…

SIMULIA现实仿真解决方案 SIMULIA仿真模拟应用程序

由 3DEXPERIENCE 平台提供技术支持,SIMULIA 可提供仿真模拟应用程序,这些应用程序使用户能够探究现实生活中产品、自然和生命的行为 SIMULIA 通过虚拟测试实现性能要求促进协作。其产品组合提供强大的工具,能够对采用V6设计的零件、组件和产…

敏捷开发失败的五个原因以及解决方案

作者:David Bevans , Mendix公司高级内容营销经理 敏捷开发是一个可以改变软件交付方式的框架且效果十分惊人,但鉴于需要反复不断规划、测试、集成以及其他进行中的开发方式,敏捷开发在某些情况下行不通。下文将对常见的敏捷开发失灵以及相应…

菁染料CY3/CY5/CY7标记链霉亲和素/胰岛素,CY3/CY5/CY7-Streptavidin/Insulin

产品名称:菁染料CY3/CY5/CY7标记链霉亲和素/胰岛素 英文名称:CY3/CY5/CY7-Streptavidin/Insulin 链霉亲和素(streptavidin下称SA)是与亲和素(avidin下称AV)有相似生物学特性的一种蛋白质,是streptomyces avidinii菌的分泌物,其分…

AotuDL中Linux环境下运行pix2pix-tensorflow的环境配置(tensorflow==1.8.0 python==3.6)

目录写在前面1. 租用实例时基础镜像的选择2. 配置环境3. 实验记录写在前面 🍀windows环境下运行:【用于图像修复、数据增强等】结合官方代码教程,在Windows 10下运行pix2pix-tensorflow(tensorflow1.4.0 python3.6) A…

【网站架构】服务器弹性伸缩不能全自动,实际如何追加服务器

大家好,欢迎来到停止重构的频道。 本期,我们讨论大型网站的伸缩性。 伸缩性指的是通过自动增减服务器数量以适应用户量或压力。 这些年,微服务、ServerLess、K8S等技术,都让人有一种服务器自动伸缩很容易实现的错觉。 其实&…

最短路径问题

目录 一、前言 二、算法讲解 1、Dijkstra--朴素算法:O(n * n) 2、Dijkstra--堆优化算法:O(mlogm) 3、Bellman_ford贝尔曼算法: O(n * m) 4、Spfa算法:O(n * m) 5、Spfa处理负环:O(n * m) 6、Floyd算法&#xf…

iOS 列表页面实时刷新解决方案

iOS 列表页面实时刷新解决方案 一、背景介绍 1.1 问题的出现 客户要求APP客户端每次切换Tab,都需要从服务器去获取最新的数据,所以每次切换Tab,客户端都会去主动刷新接口,以获取最新的数据。但是实际发现,每次切换T…

基于FPGA MIPS CPU设计学习(1)

关于什么是MIPS以及MIPS架构可参考文章: MIPS架构与指令简介 1 MIPS寄存器学习 MIPS寄存器详细解释如下: • 0 : 即 0: 即 0:

【Shell 脚本速成】04、Shell 脚本格式化输出与用户交互

目录 一、shell格式化输出 1、echo命令 案例演示: 2、输出颜色字体 3、综合案例 二、 用户交互 1、read命令 2、交互输入案例 计算机程序其实就是三步:输入、运算、输出,这个理论也适应于shell编程。 那么计算机是如何将信息按照比较舒服的格式输…

Unity - BRP管线关闭 - UpdateDepthTexture的绘制

最近一直忙着跟项目打杂。。。 比较少时间进修,充电。。。难受香菇 但是 unity 的踩坑经验倒是增加了不少(还有很多坑的经验我都懒得写了,但是这些坑浪费查资料时间,还不如自己记下来,便于日后如果还有 BRP 项目的处理…

Neptune CHT-C助力零束打造智舱界王者

9月27日,上汽子品牌飞凡汽车的首款旗舰车型——飞凡R7刚一上市就牢牢吸引了众多视线,在了解了其配置后,用户纷纷称其为“智驾界卷王”。 飞凡R7搭载的RISING MAX 31巨幕,由中国品牌车型最大尺寸的43英寸宽幅真彩三联屏和全球首发量…

CSS的元素显示模式

元素显示模式是什么&#xff1f;&#xff1a; 由于网页中的标签非常多&#xff0c;在不同地方会用到不同类型的标签&#xff0c;了解他们的特点可以更好的布局我们的网页。 元素显示模式就是元素(标签)以什么方式进行显示&#xff0c;比如<div>独占一行&#xff0c;比如…

线索二叉树

目录 一、线索二叉树的类型定义 二、各种线索化的二叉树 三、中序线索二叉树的算法 完整代码&#xff1a; 一、线索二叉树的类型定义 typedef struct BTNode {ElemType data;//数据域struct BTNode* lchild;//左孩子或线索指针struct BTNode* rchild;//右孩子或线索指针int lt…

锐捷MPLS隧道单域实验配置

目录 配置AS100内的IGP路由协议 配置AS内的LDP 配置PE-PE的MP-BGP协议 在PE侧配置PE-CE的路由协议 在CE侧配置PE-CE的路由协议 将CE的路由重发布进MP-BGP中 将MP-BGP的路由重发布进CE中 MPLS隧道——单域基础理论讲解_静下心来敲木鱼的博客-CSDN博客_mpls隧道https://bl…

Python安装

一、官网下载 二、安装 找到下载的安装包&#xff0c;直接双击安装 三、设置环境变量 1、mac自带的python版本 2、修改为新下载的python3.11版本 1&#xff09;修改.bash_profile vi ~/.bash_profile 修改完成后&#xff0c;生效该文件&#xff1a;source ~/.bash_profile…