【Go语言】(一)环境搭建与了解VScode工具

视频链接(p1~p8):

golang入门到项目实战 [2022最新Go语言教程,没有废话,纯干货!]

参考链接:

用vscode开发go的时候,安装go包报错:connectex: A connection attempt failed because the connected party did not

一、安装与熟悉工具

视频一开始讲go语言有什么特点之类的,完全不用管,刚开始学也记不了这些。

语言环境安装

下载官网

【Go语言】(一)环境搭建与了解VScode工具

安装到自己喜欢的位置,接着设置环境变量: 安装的位置/bin,我是在 D:/Go/

【Go语言】(一)环境搭建与了解VScode工具

到高级属性设置

【Go语言】(一)环境搭建与了解VScode工具

【Go语言】(一)环境搭建与了解VScode工具

可以看到它自动在我们的用户变量弄了 GOPATH,这是以前放项目的地方,但是弄了模块化后就没必要了

找到系统变量的Path

【Go语言】(一)环境搭建与了解VScode工具

点击编辑,发现它也是自动帮我们设置好了:

【Go语言】(一)环境搭建与了解VScode工具

查看版本:

【Go语言】(一)环境搭建与了解VScode工具

管理员模式打开Power Shell,设置go的环境变量( 后面发现这里弄的环境对VScode没影响):

【Go语言】(一)环境搭建与了解VScode工具

输入:

$env:GO111MODULE="on"
$env:GOPROXY="http://goproxy.cn"

自行安装git Bash:

这个是网站链接

https://git-scm.com/downloads

安装VScode工具

这个也是网站链接

https://code.visualstudio.com/download

自行安装好后就配置环境:

【Go语言】(一)环境搭建与了解VScode工具

【Go语言】(一)环境搭建与了解VScode工具

第一个GO程序:Hello World!

选自己喜欢的位置,这个就是未来VScode的工作区了,而CMD 命令行运行如下:

mkdir go
cd go
mkdir go_prod
go env -w GO111MODULE=on
go mod init go_prod
code ./go_prod

新建一个go后缀的文件,运行以下程序

package main

import "fmt"

func main(){
    fmt.Println("Hello World!")
}

【Go语言】(一)环境搭建与了解VScode工具

结果如下:

【Go语言】(一)环境搭建与了解VScode工具

VScode的终端运行 GO常用命令

【Go语言】(一)环境搭建与了解VScode工具

运行命令1:

go build 实际存在可运行出结果的go文件

【Go语言】(一)环境搭建与了解VScode工具

接着就生成一个exe后缀的文件,运行它就行了

【Go语言】(一)环境搭建与了解VScode工具

运行命令:

./main.exe

运行命令2:

go run 实际存在可运行出结果的go文件

直接产生结果:

【Go语言】(一)环境搭建与了解VScode工具

格式化命令:

格式化的意思:把代码排到令一般人觉得舒服并易于理解的位置。

如果只是对于单个文件的话,这个命令相较于自己在VScode安装一个格式化的插件效果不太好,多个文件就好用了。

go fmt

下载包命令:

举例:我想下个mysql的包
官网的搜索栏,选个mysql,拿到下载地址。

【Go语言】(一)环境搭建与了解VScode工具
【Go语言】(一)环境搭建与了解VScode工具

跑回VScode的终端栏,输入命令如下:

go env -w GOSUMDB=off
go env -w GOPROXY=https://goproxy.cn,direct
go get github.com/go-sql-driver/mysql

安装成功提示:

【Go语言】(一)环境搭建与了解VScode工具

查看VScode的快捷键

【Go语言】(一)环境搭建与了解VScode工具

常用的快捷键:

行注释 Ctrl + /
块注释 shift + Alt + a
删除行 Ctrl + shift + k
查找文件 Ctrl + e
打开设置命令行 Ctrl + shift + p

快速生成代码

命令1:生成主函数
在代码那栏输入:

pkgm

【Go语言】(一)环境搭建与了解VScode工具

命令2:生成输出函数

fp

【Go语言】(一)环境搭建与了解VScode工具

代码自动补全和选择导入包
参考链接:vs code golang代码自动补全
由于VSCode的不停更新,很多配置的位置发生了变化,我操作也是云里雾里,可能我的步骤会有些多余,由于之前就已经输入了如下的命令:

go env -w GOPROXY=https://goproxy.cn,direct

所以我先是输入”ctrl + shift + p”,再输入go:install/update,点击它

【Go语言】(一)环境搭建与了解VScode工具

接着我就有如下这好几个选项,全部勾上,有的博客会说安十多个,可能是因为版本不一样吧,之后是一定会安装成功的,如果你跟着我之前的操作的话:

【Go语言】(一)环境搭建与了解VScode工具

安装好后,我就到这里面:

【Go语言】(一)环境搭建与了解VScode工具

在选择栏那里输入 go,再随便点击任何一个 setting.json

【Go语言】(一)环境搭建与了解VScode工具

在上面的 editor.quickSuggestions加上:

"go.useCodeSnippetsOnFunctionSuggest": true

【Go语言】(一)环境搭建与了解VScode工具

重启VSCode,我们拿这个案例进行测试:
你现在看到我这里会提示你没导入fmt这个包

【Go语言】(一)环境搭建与了解VScode工具

之后鼠标移动到 fmt,会有个💡按键,点击它,会有提示Add import “fmt”,这里点上,它就会自动帮你补上:

【Go语言】(一)环境搭建与了解VScode工具

命令3:输出对应变量
先定义变量,顺便附上值:

s:="hello"

接着输入

s.pr

VScode就会提示自动补全最终如下:

【Go语言】(一)环境搭建与了解VScode工具

其他的快捷命令

ff  fmt.Printf("", var)
for for i := 0; i < count; i++ {}
forr for _, v := range v {}
fmain func main() {}

Go如何调用自建包与模块

方案一:放入到固定存放模块的位置

package user is not in GOROOT (D:\go\src\user)
要在 D:\go\src目录下新建一个 user包,在包里定义函数
src/user/user.go

//&#x5B9A;&#x4E49;&#x5305;&#x540D;
package user
//&#x5B9A;&#x4E49;hello&#x51FD;&#x6570;
func Hello() string{
    return "Hello"
}

~/main.go:调用包,放在随意一个位置

package main
import ("fmt"
        "user")
func main(){
    s:=user.Hello()
    fmt.Printf("s: %v\n",s)
}

方案二:根据下面这篇博客的提示使用 go mod init &#x4EFB;&#x610F;&#x540D;

我心态都炸了,原来调用根目录文件夹下自定义包是要这样写的。
Go初学者坑记之 go mod init 和自定义包的使用
我的go文件存放目录

【Go语言】(一)环境搭建与了解VScode工具
在VScode的终端输入如下
【Go语言】(一)环境搭建与了解VScode工具
自己main.go文件修改成如下形式:
package main
import ("fmt"
        "paturnax/user")
func main(){
    s:=user.Hello()
    fmt.Printf("s: %v\n",s)
}

最终效果:

【Go语言】(一)环境搭建与了解VScode工具

Original: https://www.cnblogs.com/PaturNax/p/16494362.html
Author: 帕图纳克斯
Title: 【Go语言】(一)环境搭建与了解VScode工具

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/516249/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 常见的限流算法

    通过限制并发访问数或者限制一个时间窗口内允许处理的请求数量来保护系统,例如,通过限流,你可以过滤掉产生流量峰值的客户和服务。 令牌桶算法 令牌桶算法是常见的一种限流算法。假设有一个…

    Go语言 2023年5月25日
    050
  • go语言标准库

    学习go 语言,如果不知道标准库,那很多能力就不知道,标准库应该是程序员可以背下来的 bufio bytes container crypto database debug enc…

    Go语言 2023年5月29日
    053
  • Golang的GC回收机制

    GC触发的条件 v1.3版本 标记清除法 第一步,找出不可达的对象,做上标记。 第二部,回收没有被标记的对象。 缺点:在标记的时候会进行STW(Stop the world) St…

    Go语言 2023年5月25日
    049
  • Excelize 发布 2.6.1 版本,支持工作簿加密

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Mic…

    Go语言 2023年5月25日
    058
  • TCP粘”包”问题浅析及解决方案Golang代码实现

    一、粘”包”问题简介 在socket网络编程中,都是端到端通信, 客户端端口+客户端IP+服务端端口+服务端IP+传输协议就组成一个可以唯一可以明确的标识一…

    Go语言 2023年5月25日
    052
  • go 自定义http.Client – 动态修改请求Body

    在对接Alexa Smart Home时,有的请求Payload中需要传入Access Token,但是这个Token是由OAuth2 Client管理的,封装Payload时并不…

    Go语言 2023年5月25日
    048
  • [go-websocket 搭建一对一,一对多的聊天室] 第二篇:websocket间的通信

    源码地址https://gitee.com/bin-0821/chat-room-demo-go-websocket 关于websocket,上一篇文章讲述了如何通过websock…

    Go语言 2023年5月25日
    070
  • Excelize 发布 2.6.0 版本,功能强大的 Excel 文档基础库

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Mic…

    Go语言 2023年5月25日
    076
  • 十分钟学会Golang开发gRPC服务

    gRPC是Google发起的一个开源RPC框架,使用HTTP/2传输协议,使用Protocol Buffers编码协议,相比RESTful框架的程序性能提高不少,而且当前流行的编程…

    Go语言 2023年5月25日
    068
  • 这不会又是一个Go的BUG吧?

    hello,大家好呀,我是小楼。 最近我又双叒叕写了个BUG,一个线上服务死锁了,不过幸亏是个新服务,没有什么大影响。 出问题的是Go的读写锁,如果你是写Java的,不必划走,更要…

    Go语言 2023年5月25日
    068
  • 从零开始搭建GoLang语言开发环境

    更多干货文章,更多最新文章,欢迎到作者主博客 菜鸟厚非 一、安装 GoLang 1.1 下载 首先访问 https://go.dev/dl/ 下载 GoLang,下载完成后双击安装…

    Go语言 2023年5月25日
    063
  • 读 Go 源码,可以试试这个工具

    原文链接: 读 Go 源码,可以试试这个工具 编程发展至今,从面向过程到面向对象,再到现在的面向框架。写代码变成了一件越来越容易的事情。 学习基础语法,看看框架文档,几天时间搞出一…

    Go语言 2023年5月25日
    043
  • go入门项目:(1) 基于命令行的图书的增删查改

    Go 语言入门练手项目系列 01 基于命令行的图书的增删查改 02 文件管理 持续更新中… 本文来自博客园,作者:Arway,转载请注明原文链接:https://www…

    Go语言 2023年5月25日
    055
  • gofs使用教程-基于golang的开源跨平台文件同步工具

    gofs是基于golang开发的一款开箱即用的跨平台文件同步工具,支持在本地磁盘之间同步、从远程服务器同步变更到本地、将本地文件变更推送到远程服务器三种模式。开源地址如下:Gith…

    Go语言 2023年5月25日
    052
  • go语言并发编程

    引言 说到go语言最厉害的是什么就不得不提到并发,并发是什么?,与并发相关的并行又是什么?并发:同一时间段内执行多个任务并行:同一时刻执行多个任务 进程、线程与协程 进程: 进程是…

    Go语言 2023年5月25日
    063
  • 踩了个DNS解析的坑,但我还是没想通

    hello大家好,我是小楼。 最近踩了个DNS解析的小坑,虽然问题解决了,但排查过程比较曲折,最后还是有一点没有想通,整个过程分享给大家。 背景 最近负责的服务要置换机器。置换机器…

    Go语言 2023年5月25日
    0106
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球