前言
Go,天生高并发支持,语法简洁,占用内存和CPU资源小。所以,学它!! 本文会简单讲明几个点,会采用对比的理解方法。希望对新入门的宝贝萌有所帮助。
从零开始
简单构建一个main.go,执行 go run amin.go。
注意事项:1.应用程序的执行入口是main()函数。 2. 严格区分大小写。
package main
import (
"fmt"
)
func main(){
fmt.Println("Hello World");
}
复制代码
简单熟悉main.go.下面的例子帮助大家更深一步了解。
package main
import "fmt"
func main(){
var countryCapitalMap map[string]string
countryCaptialMap = make(map[string]string
countryCaptialMap["Paris"] ="巴黎"
countryCaptialMap["Japan"] = "日本"
countryCaptialMap["Italy"] = "意大利"
}
for country :=range countryCapitalMap{
fmt.Println(country,"首都是",countryCapitalMap[)
}
复制代码
var countryCapitalMap map[string]string
声明变量,相当于var,没有分配空间。make[key]value
make的作用是分配空间。它有三种不同的用法。
- make(map[string]string)
- make([]int, 2)
- make([]int, 2, 4)
range
:Go语言中range(范围)的关键字用于for循环中迭代数组(array),切片(slice),通道(channe)或集合(map)的元素。
go语言的web框架 gin
package main
import "github.com/gin-gonic/gin"
func main(){
engine := gin.Default()
engine.GET("/", func(context *gin.Context) {
context.String(http.StatusOK, "hello gin get method")
})
_ = engine.Run()
}
复制代码
以上使用了一个很短的代码实现了一个web服务。使用gin的Default方法创建一个路由。然后通过HTTP方法绑定路由规则和路由函数。不同于net/http库的路由函数,gin进行了封装,把request和response都封装到gin.Context的上下文环境。下面是对代码的详解:
"github.com/gin-gonic/gin"
: 第三方模块很多都是github.com开头的
安装命令:go get -u github.com/gin-gonic/gin
engine := gin.Default()
相当于const app=express() gin相当于expressengine.GET
:添加GET请求,第一个是路径,第二个是context
:上下文访问的一个环境,分析请求以及形成一个返回。它相当于koa的ctx,相当于express的req+res。本次实例是采用*gin.Context的一个指针类型。context.String
代表着res.String(),返回一个字符串。_ = engine.Run()
相当于node里的listen ,默认端口为8080。也可以自己修改_ = engine.Run(":3000")。_
下划线表示不处理,无论传递什么都接受,万能用法。
resetful
- resetful 使用相对应的语义的请求动词+语义化的url
POST
engine.POST("/", func(context *gin.Context) {
context.String(http.StatusOK, "hello gin post method")
})
_ = engine.Run()
}
复制代码
- POST请求是在保存数据的时候使用
- /login POST 表示登录
- /post/1234 GET 读某篇文章 id为1234
- /post POST 表示新增一篇文章
- /post GET 表示获取文章列表
PUT
engine.PUT("/", func(context *gin.Context) {
context.String(http.StatusOK, "hello gin put method")
})
_ = engine.Run()
}
复制代码
put动词经常会和post混淆,put和post都是用来保存数据,但是put是修改数据。比如在库里添加一条信息
{username:'meimei',hobbies:['赚钱','花钱']}
复制代码
若是用post就是新增一个原来没有的数据,若是put,则表示修改,整个的替换。
delete
就是表示删除。例如:配合 /post/123 表示删除某篇文章。
PATCH
是用来更新局部。
HEAD
不在意返回内容。作用:在不获得资源的情况下,了解资源的信息。比如是否修改过?文件大小如何?文件是否存在?
它的位置在响应头里。
最后
- 本文是作者总结与借鉴,若有错误或者意见,宝贝萌可以在评论区留言。
- 欢迎大家一起学习交流。Pink~
有疑问加站长微信联系(非本文作者)