0%
Gin框架介绍及使用
发表于:
分类于:
go
Gin框架介绍
- 基于 httprouter 开发的Web框架。
- 中文文档 ,齐全。
- 简单易用的轻量级框架。
Gin框架安装
go get -u github.com/gin-gonic/gin
实例:
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
// 创建一个默认的路由引擎
// 也可以用gin.New() gin.Default()多用了日志和panic的recover中间件
r.GET("/helloworld", func(c *gin.Context) {
c.JSON(200, gin.H{
// c.JSON:返回JSON格式的数据
"msg": "Hello world!",
})
})
err := r.Run("127.0.0.1:8001")
// 启动HTTP服务,默认在127.0.0.1:8001启动服务
if err != nil {
fmt.Println("run gin field")
return
}
}
goalng包和命令工具
发表于:
分类于:
go
golang 单元测试
发表于:
分类于:
go
golang context包
发表于:
分类于:
go
golang channel
发表于:
分类于:
go
go语言文件系统
发表于:
分类于:
go
检测文件是否存在
//存在返回 true,不存在返回 false
func fileIfExist(filename string) bool {
_, err := os.Stat(filename)
if nil != err {
fmt.Println(filename, "is not exist!")
return false
}
if os.IsNotExist(err) {
return false
}
return true
}
打开文件
f, err := os.Open(filename)
if nil != err {
fmt.Println("open", filename, "failed!")
return
}
defer f.Close()
如果文件不存在,就会返回错误,如果存在就以只读的方式打开文件。
golang方法
发表于:
分类于:
go
方法声明
在函数声明时,在其名字之前放上一个变量,即是一个方法。这个附加的参数会将该函数附加到这种类型上,即相当于为这种类型定义了一个独占的方法。
package main
import "fmt"
type People struct {
name string
age uint8
}
func (p People) SayHello() {
fmt.Println(p.name, ": hello world")
p.age = 20
}
func main() {
p := People{name: "zhaohaiyu", age: 18}
p.SayHello() // zhaohaiyu : hello world
fmt.Println(p.age) //18
}
基于指针对象的方法
当调用一个函数时,会对其每一个参数值进行拷贝,如果一个函数需要更新一个变量,或者函数的其中一个参数实在太大我们希望能够避免进行这种默认的拷贝,这种情况下我们就需要用到指针了。
golang复杂数据结构
发表于:
分类于:
go