【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)

大家都在看

  • 【Docker】使用Docker Client和Docker Go SDK为容器分配GPU资源

    深度学习的环境配置通常是一项比较麻烦的工作,尤其是在多个用户共享的服务器上。虽然conda集成了virtualenv这样的工具用来隔离不同的依赖环境,但这种解决方案仍然没办法统一地…

    Go语言 2023年5月25日
    098
  • 大道如青天,协程来通信,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang通道channel的使用EP14

    众所周知,Go lang的作用域相对严格,数据之间的通信往往要依靠参数的传递,但如果想在多个协程任务中间做数据通信,就需要通道(channel)的参与,我们可以把数据封装成一个对象…

    Go语言 2023年5月25日
    0108
  • go微服务框架Kratos笔记(六)链路追踪实战

    什么是链路追踪 借用阿里云链路追踪文档来解释分布式链路追踪(Distributed Tracing),也叫 分布式链路跟踪,分布式跟踪,分布式追踪 等等,它为分布式应用的开发者提供…

    Go语言 2023年5月25日
    095
  • Go内存逃逸分析

    Go的内存逃逸及逃逸分析 Go的内存逃逸 分析内存逃逸之前要搞清楚一件事 我们编写的程序中的 函数和 局部变量默认是存放在栈上的(补充一点堆上存储的数据的指针 是存放在栈上的 因为…

    Go语言 2023年5月25日
    073
  • 如何在 Go 中将 []byte 转换为 io.Reader?

    原文链接: 如何在 Go 中将 []byte 转换为 io.Reader? 在 stackoverflow 上看到一个问题,题主进行了一个网络请求,接口返回的是 []byte。如果…

    Go语言 2023年5月25日
    092
  • go微服务框架Kratos笔记(二)引入zap日志库

    zap日志库是一款高性能的开源日志库,提供了结构化日志记录和printf风格的日志记录 go get -u go.uber.org/zap 参考官方文档中描述,为了方便业务自适配不…

    Go语言 2023年5月25日
    098
  • Golang Zap日志

    Zap日志解析 Config.yaml zap: level: ‘info’ #日志级别 format: ‘console’ #输出的级别,有console和json prefix…

    Go语言 2023年5月25日
    089
  • go-containerregistry 实战篇之容器镜像下载

    go-containerregistry 实战篇之容器镜像下载 一、库介绍 go-containerregistry 是 google 公司开源的用于处理容器镜像的golang客户…

    Go语言 2023年5月25日
    0101
  • go-micro开发RPC服务的方法及其运行原理

    go-micro是一个知名的golang微服务框架,最新版本是v4,这篇文章将介绍go-micro v4开发RPC服务的方法及其运作原理。 基本概念 go-micro有几个重要的概…

    Go语言 2023年5月25日
    076
  • 【译】eBPF 和 Go 经验初探

    原文地址:https://networkop.co.uk/post/2021-03-ebpf-intro/首发地址: 【译】eBPF 和 Go 经验初探本站相关文档:使用 Go 语…

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

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

    Go语言 2023年5月25日
    096
  • golang低级编程:一.unsafe包

    go语言在设计上确保了一些安全的属性,限制了程序可能出错的途径。例如严格的类型转换规则。但也使得很多实现的细节无法通过go程序来访问,例如对于聚合类型(如结构体)的内存布局,或者一…

    Go语言 2023年5月25日
    075
  • [原创]Golang一行代码给钉钉群推送消息

    [原创]Golang一行代码给钉钉群推送消息 钉钉本来就是工具,只是boss把你变成了工具. — 麦·卡隆 今天朋友扔给我个某签到脚本,让我做推送功能. 我迅速从吃灰收藏夹里掏出S…

    Go语言 2023年5月25日
    070
  • muduo源码分析之TcpServer模块

    这次我们开始 muduo源代码的实际编写,首先我们知道 muduo是 LT模式, Reactor模式,下图为 Reactor模式的流程图[来源1] 然后我们来看下 muduo的整体…

    Go语言 2023年5月25日
    074
  • Go汇编语法和MatrixOne使用介绍

    目录 MatrixOne数据库是什么? Go汇编介绍 为什么使用Go汇编? 为什么不用CGO? Go汇编语法特点 操作数顺序 寄存器宽度标识 函数调用约定 对写Go汇编代码有帮助的…

    Go语言 2023年5月25日
    0108
  • Go切片全解析

    目录结构:数组切片 底层结构 创建 普通声明 make方式 截取 边界问题 追加 拓展表达式 扩容机制 切片传递的坑 切片的拷贝 浅拷贝 深拷贝 var n [4]int fmt….

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