📓推荐网站(不断完善中):个人博客
📌个人主页:个人主页
🏝立志赚钱,干活想躺,瞎分享的摸鱼工程师一枚
文章目录
不同的人对于开发工具的习惯还是不一样的,所以博主还是决定,简单出一份关于 GoLand 的使用教程,方便于在开发过程中不同的开发习惯。
但是在此还是希望如果是刚刚入门的小白们,要明白的一点是无论是编程语言还是编程工具,他们都应该是处于一个可切换的状态,并不是一门语言和一个 IDE工具 就阻挡下你的脚步,加油!
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官方下载地址 点这里
下一步 即可中文名文件夹路径.64 和 .go 即可在安装完成后(当然你可以先免费用一个月),就可以看到这样的界面,就可以开始准备我们的 Go 之旅啦!
New Project: 表示新建一个项目
Open: 表示打开一个项目
Get from VCS: 表示从版本管理器中打开项目(SVN、Gitee、GitHub)
任何工具的第一步实际上都是要先学会如何创建一个项目,那么我们在使用GoLand也是一样,从创建一个项目开始。
选择我们的 New Project ,那么我们就会看到如下界面
选择 Go 项目,如果选择带有 GOPATH 标记的则表示将项目默认创建在你配置好的 GOPATH 空间下(不懂 GOPATH 可以回看博主之前的文章)
在 GoLand 中,一个项目就可以作为一个工作空间,所以选择
Go则表示要将这个新建的项目作为一个独立的工作空间进行开发
Location: 表示当前项目的位置
GOROOT: 表示你GO环境的开发包安装位置,这个如果在环境变量已经配置好的情况下会自动帮你填写,如果没配置建议先配置好环境变量。
Environment: Go 的一些 mod 可能需要外网下载,因为一些不可描述的原因我们无法访问,因此可以通过配置 GOPROXY 代理来改变代理成国内的下载代理,这个可以暂时先不配置。(想配置 GOPROXY 可以查看 VSCode 配置篇)
项目创建成功的界面
.go 程序文件在对项目新建做完基础讲解后,我们可以开始创建我们的新 .go 文件了
点击我们的项目 右键->New->Go File 选择创建一个简单的应用

Simple application 会得到一个带有简单 main 函数的文件,这是一个程序的入口创建好的代码内容如下:
mod 的开启与关闭在我们的本地环境中我们可以通过指令来配置 go mod 模块管理的开启与关闭,而在我们的 Goland 中我们也可以通过设置来改变 go mod 的启用,我们在使用 Goland 的时候可以开启 go mod
Preferences ->Go ->Go Modules 进行设置,如下:
关于代理: 因我我们众所周知一些原因,所以代理可以修改为国内,方便获取资源,留下以下几种资源地址
GoLand 生效https://mirrors.aliyun.com/goproxy/https://gonexus.devhttps://goproxy.io/https://proxy.golang.orghttps://goproxy.cn是否使用 go mod 的区别:
go env -w GO111MODULE=on ,会将包下载到 gopath 下的 pkg 下的 mod 文件夹中go env -w GO111MODULE=off ,会将包下载到 gopath 下的 src 下go env GO111MODULE=auto 只有当前目录在 GOPATH/src 目录之外而且当前目录包含 go.mod 文件或者其子目录包含 go.mod文件才会启用在刚刚我们已经新建了一个带有 main 的 .go 文件,那么我们接下来就需要在 main() 中写下我们的第一份代码, Goland 是相对比较智能的,很多基础包不需要你去写 import ,你只需要直接写你要的工具模块,它就会自动帮你导入相关的模块。
因此你只需要在 main 中手动输入自己的第一份代码,即可!
fmt.Println("Hello Let's GO!") // 在终端打印
// 输入相关代码后Goland就会自动帮你导入`fmt`
点击运行按钮(在右上角有一个绿色的▶️)
得到运行结果
我们之前有说过,Go 语言对于代码的检测和格式是有自己官方的统一规范和自动化的,所以就减少了出现不同程序不同的代码风格导致相互之间可阅读性降低的问题。
使用 GoLand 编写 Go 代码时,可以配合 gofmt + goimports + golangci-lint 在保存时完成对代码的格式化和质量检测。
开启 go fmt: 在每次保存代码文件时自动格式化代码。
File > Settings > Tools > File Watchers > + > go fmt
开启 goimports 在每次保存代码时自动添加缺失的和删除未引用的包。
File > Settings > Tools > File Watchers > + > goimports
如果遇到 tools 工具没安装, Goland 则会提醒你安装
如果安装失败,则可能是国内代理的原因,请修改代理(这里不再重复赘述,可参考前一篇文章内容)
**开启 golandci-lint: ** 开启 golangci-lint 可以对代码进行静态检查,比如报告函数行数超标、文件行数超标等来帮助规范代码
File > Settings > Tools > File Watchers > + > golangci-lint
至此,工具安装完成!
文件相关快捷键:
CTRL + E: 打开最近浏览过的文件
CTRL + SHIFT + E: 打开最近修改的文件
CTRL + N: 可以快速打开struct结构体
CTRL + SHIFT + N: 可以快速打开文件
代码格式化
查找和定位
代码常用
本文主要是教学基本的
GoLand使用,以及如何使用该工具开发第一个Go程序,以上为个人分享,如有问题请指正!(还是提醒各位入门的同好们,工具无论是GoLand或是VSCode并没有绝对的高下之分)

我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何
我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr