首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Go入门到精通系列

Go入门到精通系列

作者头像
leon公众号精选
发布于 2022-04-27 08:18:04
发布于 2022-04-27 08:18:04
42200
代码可运行
举报
运行总次数:0
代码可运行

Go入门到精通系列

安装Go

windows

  • 下载地址

https://go.dev/doc/install;windows下安装较简单,msi程序点点点就可以,不需要配置环境变量等;最新版本为1.17.7

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>go version
go version go1.17.7 windows

安装依赖

  • 安装gopkgs
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go install -v github.com/uudashr/gopkgs/v2/cmd/gopkgs@latest
  • 创建go.mod
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go mod init example/hello

go.mod文件一旦创建后,它的内容将会被go toolchain全面掌控。go toolchain会在各类命令执行时,比如go get、go build、go mod等修改和维护go.mod文件。

  • 设置代理 当使用go get 还原依赖包时需远程下载,go仓库又是依赖github,会造成请求无响应的错误,此时需要设置代理。goproxy.cn是专门服务于中国的,依赖于七牛云。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 go env -w GOPROXY=https://goproxy.cn

创建server.go文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import (
  //echo是go的web开发框架
  "github.com/labstack/echo/v4"
  "github.com/labstack/echo/v4/middleware"
  "net/http"
)

func main() {
  // Echo instance
  e := echo.New()

  // Middleware
  e.Use(middleware.Logger())
  e.Use(middleware.Recover())

  // Routes
  e.GET("/", hello)

  // Start server
  e.Logger.Fatal(e.Start(":1323"))
}

// Handler
func hello(c echo.Context) error {
  return c.String(http.StatusOK, "Hello, World!")
}

执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go run server.go

报错

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server.go:4:3: no required module provides package github.com/labstack/echo/v4; to add it:
        go get github.com/labstack/echo/v4
server.go:5:3: no required module provides package github.com/labstack/echo/v4/middleware; to add it:
        go get github.com/labstack/echo/v4/middleware

以上错误提示需要指定go get 安装两个依赖,接下来按提示执行两个命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go get github.com/labstack/echo/v4
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 go get github.com/labstack/echo/v4/middleware

再次执行 go run server.go

控制台出现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PS F:\workcode\GoCode\hello> go run .\server.go

   ____    __
  / __/___/ /  ___
 / _// __/ _ \/ _ \
/___/\__/_//_/\___/ v4.6.3
High performance, minimalist Go web framework
https://echo.labstack.com
____________________________________O/_______
                                    O\
⇨ http server started on [::]:1323

浏览器访问地址 http://localhost:1323/

出现Hello, World!

VsCode开发GO

  • 安装插件

1、Go

2、Bracket Pair Colorizer

3、Visual Studio IntelliCode

现在你可以F12或者Ctrl+鼠标左键进入源代码了

  • 调试

在vscode中直接F5即可,无需配置launch.json,目录中会生成__debug_bin.exe

常见问题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.\server.go:4:3: imported and not used: "fmt"

go代码检测到未使用的引用会直接报错,解决办法在引用前添加_即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import (
  _"fmt"
)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师高级俱乐部 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
echo-高性能,可扩展,极简的Go Web框架
以前学习Nodejs的时候,使用过Express,这是一个基于 Node.js 平台,快速、开放、极简的 Web 开发框架。 echo是一个高性能,可扩展,极简的Go Web框架。其官网如下图所示:
ccf19881030
2020/08/24
2.3K0
echo-高性能,可扩展,极简的Go Web框架
Go Module详细使用教程,包管理不在难
go modules是 golang 1.11引入的新特性。模块是相关Go包的集合。modules是源代码交换和版本控制的单元。go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。
公号:咻咻ing
2020/03/04
20.8K0
Go: 深入了解 Echo 框架并对比 Gin
在现代 Web 开发中,选择合适的框架至关重要。在 Go 语言生态中,Echo 和 Gin 是两个非常受欢迎的 Web 框架。本文将深入探讨 Echo 框架的特点和优势,并与 Gin 进行对比,以帮助开发者做出明智的选择。
运维开发王义杰
2024/05/29
1.8K0
Go: 深入了解 Echo 框架并对比 Gin
golang mod 入门
go modules 是 golang 1.11 新加的特性。现在1.12 已经发布了,是时候用起来了。Modules官方定义为:
goodspeed
2020/12/22
8800
Go + Echo + Gorm项目从0到1搭建
Echo 项目是一个功能强大且用途广泛的 Web 框架,用于使用 Go 编程语言构建可扩展且高性能的 Web 应用程序。它遵循简单性、灵活性和性能的原则,为开发人员提供了一个高效的工具包,用于构建强大的 Web 应用程序。
心安事随
2024/08/15
4340
Go + Echo + Gorm项目从0到1搭建
从0到1搭建起来Go + Echo + Grom项目
Echo 项目是一个功能强大且用途广泛的 Web 框架,用于使用 Go 编程语言构建可扩展且高性能的 Web 应用程序。它遵循简单性、灵活性和性能的原则,为开发人员提供了一个高效的工具包,用于构建强大的 Web 应用程序。
心安事随
2024/08/14
4050
从0到1搭建起来Go + Echo + Grom项目
Go:构建应用程序的10大框架
现在,很多开源库都支持构建应用程序。我应该向你推荐一些库,它们可以帮助启动具有简单设计、干净代码和良好性能的项目。
Freedom123
2024/03/29
3360
Go:构建应用程序的10大框架
Go Echo Web Framework
Echo是Go语言生态里的一个Web应用框架,这个框架提供了非常非常简单的方式来开发高性能的Web应用。其实在写Echo之前,还想说一说Go语言里一个非常有意思的东西,叫Reflect(反射)的特性,这个特性在动态语言中非常有用,可以类比Objective-C中提供的runtime机制,用来动态的执行Method或者设置属性,而且reflect的使用非常的简单。reflect.TypeOf和reflect.ValueOf来分别表示一个值的类型和一个类型的值,并且通过这样的方式来动态的调用某些方法和设置属性。
icepy
2019/06/24
1.7K0
Go Echo Web Framework
Go框架解析:echo
今天是我golang框架阅读系列第四篇文章,今天我们主要看看echo的框架执行流程。关于golang框架生命周期源码阅读下面是我的计划:
用户1093396
2020/10/29
1.8K0
Go框架解析:echo
Go两周入门系列-包管理
实际项目总要依赖各种第三发开发包,各类开发语言都有自己的第三方包依赖管理工具,例如:java的maven、js的npm、php的composer等,golang在1.11版本以前官方是没有提供包依赖管理工具的,只有一些社区提供的工具,从1.11版本以后官方就提供mod模块管理工具。
用户10002156
2023/10/04
3690
Go两周入门系列-包管理
OpenResty解决的第一个问题
可参考 http://openresty.org/en/linux-packages.html
龟仙老人
2020/12/15
1.1K0
5大热门基于go语言的web框架,别再只知道springmvc
Spring MVC在Java web领域中首屈一指,而作为云原生时代的标准语言之一,Go语言自然也衍生出来不少优秀的web框架。今天给大家分享5个流行的基于Go语言的web框架,他们有什么区别,应该如何选择呢?别着急,往下看。
MCNU云原生
2023/09/05
13K0
5大热门基于go语言的web框架,别再只知道springmvc
echo源码分析
web框架的核心作用有三个:分层、路由、中间件。针对于go比较有名的web框架有
golangLeetcode
2022/08/02
4K0
Golang Module的使用 顶
注意:go mod 还有一些其他比较有意思的工具,比如可以打印依赖树,比如可以查看哪些模块在哪些包引用了
BGBiao
2019/09/09
1.3K0
「Go框架」深入理解web框架的中间件运行机制
大家好,我是渔夫子。本号新推出「Go工具箱」系列,意在给大家分享使用go语言编写的、实用的、好玩的工具。同时了解其底层的实现原理,以便更深入地了解Go语言。
Go学堂
2023/01/31
7440
Golang学习笔记,从入门到精通,持续记录
Golang官网:https://go.dev/、Golang下载:https://go.dev/、Golang学习文档:https://go.dev/doc/
房东的狗丶
2023/02/17
1.3K0
搭建vscode golang开发环境
如果是go的版本是1.13+,就会比较简单,设置下go env可以通过代理进行下载:
DifficultWork
2019/05/08
7.7K0
vscode golang环境搭建「建议收藏」
下载地址为: https://golang.google.cn/dl/ 如果是linux环境,解压到某个目录。然后配置/etc/profile设置相关环境变量 如果是windows环境,下载https://dl.google.com/go/go1.13.5.windows-amd64.msi,然后设置环境变量。 环境变量为: GOPATH:%USERPROFILE%\go GOPROXY:https://goproxy.cn GOROOT:C:\Program Files (x86)\go Path环境变量,追加一条:C:\Program Files\Git\bin
全栈程序员站长
2022/11/08
1.2K0
echo 源码分析(数据绑定过程)
我们知道http的参数传递的形式有很多,header、path、query、body,body( json,form)等等,针对各种形式的参数,通过bind方式来解析是比较清晰的方式,但是echo的bind 方式也是在从不完完善到逐渐完善的过程中,实践中你会发现,不同版本的echo,会出现诡异的结果,我将以下面的例子,针对v3.3.10、v4.1.17、v4.2.1三个版本的echo进行分析。
golangLeetcode
2022/08/02
1.3K0
go mod使用
最近由于换工作,开始交接工作。整理以前的工作内容,由于组内就我一个在做go和大数据。 所以开发没有规划,当时是怎么快怎么来。go也是使用最传统的go path的方式管理的。都是手动管理依赖的。现在交接给他人,需要多人开发,发现很多问题。比如版本问题,各种依赖的问题等等。
若与
2020/05/18
1.8K0
相关推荐
echo-高性能,可扩展,极简的Go Web框架
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档