[go语言开发]从0开始开发美图站——第四课[开始我们的web端的HelloWord]

首先,我们先下载一个网络框架,使用如下命令。

go get -u github.com/gin-gonic/gin

在上面的教程中,我们也看到了go get的多次出现。那么在正式的学习过程中,我们先来了解一下go的包管理系统吧。在1.11之前Go语言的包管理都是在gopath下的,所有的包和文件都得在这个目录下面。而在此后的版本中引入了go module包管理,解放了开发源文件也必须放在gopath下的束缚。当然在这里贯穿始终的下载包的工具为go get。 go get 可以下载所有的开放git下的go语言包。 而后面的-u参数就是更新包,如果你不想更新,那么就不要带上-u这个参数。

现在我们稍微了解了一下go的包管理系统,那么让我们开始编写一个可爱的接口程序吧!

首先,我们得把我们的main.go文件改成成为如下的。

package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
)

func main() {
	fmt.Println("你好世界")
	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})
	r.Run(":8080")
}

这里可以看到相比之前,我们多了import 下的括弧,以及fmt下面多了几行。别急,我们现在一行一行解释一下,如果有基础的同学可以直接跳过。

首先我们来到第一行

package main

这一行里就定义了一个包名,一般来说包名跟存放这个go文件的目录名相同,不过有一个时候这个包名是不一样的就是当你这个go文件为入口的main文件的时候,这个时候就定会一为main而不是文件夹名字。如果你这个文件夹下有多个go文件,存在多个包名,如一个是package main 和package imgapi 那么运行的时候就会报冲突。所以一般在main文件的目录下只会存在一个main文件不会存在其他go文件。

第二行有所变化,从单一的

import "fmt"

变成了

import (
	"fmt"
	"github.com/gin-gonic/gin"
)

这里就是引用了下面程序体中用到的方法的包了,例如下面打印的你好世界用的是fmt包就得import一下。而外面的括号,可以让我们少些一下import本来的样子是

import "fmt"
import "github.com/gin-gonic/gin"

现在有了括号之后,你只需要写一次import 方便多了。不过现在也不需要去管他,因为编辑器ide会自动帮你添加或者删除包(如果你引入了,但是在下方的程序体中没有使用,编译是会报错的。所以会有删除多余引用包的功能。)
下面我们就来介绍程序体了。
go语言所有的方法(函数)都是要以func关键字开始的。所有的非func开头的都是非法的。所以你要写个方法就得func开头。
然后后面就是方法名main了。方法名有一个奇怪的特殊规定,就是如果方法名的首字母是小写,则包外部是无法访问的(其他文件夹的无法访问到这个文件夹下面的小写字母开头的方法)。所以一般都是首字母大写的,参看上面示例程序中的gin.Default() 这后面的Default()就是首字母大写。
再后面就是小括号了,这里就是传入参数的地方,现在没有参数,我们等以后要传参了再继续介绍。然后就是大括号。程序体就是卸载这个大括号里的。
这里介绍一下程序题的编写规则。
go没有像Java那样的以”;”结尾为一行程序,go的一个自然行就算是一行程序了。但是入参可以分行写,如第三行的

r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})

实际上是

r.GET("/ping", func(c *gin.Context) {c.JSON(200, gin.H{	"message": "pong",})})

但是为了方便观看,就将第二个入参(一个完整的匿名方法也可以作为参数传入进去)进行的“说人话”的格式化。
至此,这个示例的基础知识解释完了(后续还有很多基础知识哦~)。

后续:

你按f5试试看,是不是跑起来了,再访问浏览器http://localhost:8080/ping 是不是返回{“message”:”pong”}

[go语言开发]从0开始开发美图站——第三课

[go语言开发]从0开始开发美图站——第五课

未经允许不得转载:RffanLAB|Rffan实验室 » [go语言开发]从0开始开发美图站——第四课[开始我们的web端的HelloWord]

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏