一、概述
在go中新建一个自定义包供其他包使用。
步骤:
1.新建一个目录
2.目录下新建一个xxx.go文件
3.在xxx.go文件中使用package xxx(包名)
4.此时你的包已经新建好了
5.在需要使用上面包的地方导入即可,如:import "xxxx"
ps:如果包中的内容需要对外开放则,方法名、结构体、interface的名称首字母必须要大写,否则只能在本包中使用。
二、代码示例(举一个例子)
1.新建一个db包,在db目录中新建一个dbutil.go文件,包名是dbutil。结构如下:
2.dbutil.go中的内容
package dbutil import ( "database/sql" "fmt" "net/http" // "strconv" "github.com/gin-gonic/gin" _ "github.com/go-sql-driver/mysql" ) var tabName = "user" var body ResponseBody // 统一返回数据的结构体 type ResponseBody struct { Code int `json:"code"` Message string `json:"message"` Data interface{} `json:"data"` } // 获取响应结果 func getResultSuccess(context *gin.Context, data interface{}) { body.Code = http.StatusOK body.Message = "操作成功" body.Data = data context.JSON(http.StatusOK, body) return } // 错误代码 func getResultError(context *gin.Context, message string) { body.Code = http.StatusBadRequest body.Message = message body.Data = nil context.JSON(http.StatusOK, body) return } var sqlDb *sql.DB // 初始化 func Init() { //打开数据库 sqlConnectStr := "root:123456@tcp(localhost:3306)/tony_cursor?charset=utf8&parseTime=true&loc=Local" sqlDb, err := sql.Open("mysql", sqlConnectStr) if err != nil { fmt.Println("数据库打开失败", err) return } //测试与数据库建立的连接 err = sqlDb.Ping() if err != nil { fmt.Println("数据库连接失败", err) return } else { fmt.Println("数据库连接成功") } }
3.在外部使用dbutil包中dbutil.go文件中的内容
步骤:
a.导入包(import "go_workspace/db")
2.使用包(dbutil.Init()),此处的Init要对外使用,所以首字母要大写
// GinTest.go package main import ( "fmt" "go_workspace/db" ) func main() { dbutil.Init() fmt.Println("Hello World!") }
标签:body,http,err,自定义,新建,fmt,go,dbutil From: https://www.cnblogs.com/tony-yang-flutter/p/17955850