go 新建一个自定义包

发布时间 2024-01-10 09:39:46作者: 飘杨......

一、概述

  在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!")
}