首页 > 其他分享 >Golang:3.8、Golang包 package

Golang:3.8、Golang包 package

时间:2022-10-23 16:36:35浏览次数:74  
标签:service package Golang go gin main 3.8 mod

3.8、Golang包 package

Golang 包的定义和导入

通常,文件夹名称和包名称相同,并且,同一个文件夹下面只有一个包

定义包

service/user_service.go

package service

导入包

main.go

package main

import "service"

golang包管理工具 go module

go module 是 golang1.11版本新加的特性,用来管理模块中包的依赖关系

$ go env
GO111MODULE="on"

go mod 的使用

# 初始化模块
# eg: go mod init 域名/项目名称
go mod init <项目模块名>

# 依赖关系处理,根据go.mod 文件
go mod tidy

# 将依赖包赋值到项目下的vendor目录
# 如果包被屏蔽(墙),可以使用这个命令, 随后使用go build -mod=vendor编译
go mod vendor

# 显示依赖关系
go list -m all

# 显示详细依赖关系
go list -m -json all

# 下载依赖
go mod download [path@version]

使用本地包

示例

# 初始化模块
go mod init mouday.com/project01

项目结构

$ tree 
.
├── go.mod
├── main.go
└── service
    └── user_service.go

service/user_service.go

package service

import "fmt"

// 首字母大写,可供外部使用
func TestService() {
    fmt.Println("TestService")
}

main.go

package main

import "mouday.com/project01/service"

func main() {
    service.TestService()
    // TestService
}

使用第三方包

搜索包:https://pkg.go.dev

下载包

go get github.com/gin-gonic/gin

使用示例

package main

import (
    "net/http"

    "github.com/gin-gonic/gin"
)

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "pong",
        })
    })
    r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}

访问:http://127.0.0.1:8080/ping

响应

{
"message": "pong"
}

标签:service,package,Golang,go,gin,main,3.8,mod
From: https://blog.51cto.com/mouday/5787359

相关文章

  • Golang:4.1、Golang 并发编程-协程
    4.1、Golang并发编程-协程共语言中的并发是函数相互独立运行的能力。goroutines是并发运行的函数创建协程gotask()示例1packagemainimport("fmt""t......
  • golang中的字符串
    0.1、索引https://waterflow.link/articles/16664498749741、字符串编码在go中rune是一个unicode编码点。我们都知道UTF-8将字符编码为1-4个字节,比如我们常用的汉字,UTF-......
  • golang中的字符串
    0.1、索引https://waterflow.link/articles/16664498749741、字符串编码在go中rune是一个unicode编码点。我们都知道UTF-8将字符编码为1-4个字节,比如我们常用的汉字,UTF......
  • golang postman api(environments)
    获取所有environmentspackagemainimport("fmt""net/http""io/ioutil")funcmain(){url:="https://api.getpostman.com/environments"method:="GET"clien......
  • Golang:3.5、Golang 指针
    3.5、Golang指针指针取地址:&取值:*指针地址:每一个变量都有一个地址,地址代表变量在内存中的位置Go语言中的值类型(int、float、bool、string、array、struct)对应的指......
  • Golang:3.6、Golang 结构体 struct
    3.6、Golang结构体struct类型定义和类型别名类型定义的语法typeNewTypeType示例packagemainimport"fmt"funcmain(){//定义类型typeMyIntint......
  • Golang:3.7、Golang接口 interface
    3.7、Golang接口interfacego语言中的接口,是一种新的类型定义,它把所有的具有共性的方法定义在一起,任何其他类型制药实现了这些方法就是实现了这个接口语法//定义接口ty......
  • Go常见错误总结1:'test' redeclared in this package
    Go常见错误总结1:'test'redeclaredinthispackage问题:'test'redeclaredinthispackage产生原因:变量名或方法名重名问题导致的,你这个变量和其他.go文件里面方......
  • Golang-Gin Response 统一返回restful格式的数据
    目的:gin返回restful格式的数据,返回的200,201的数据也包括异常时的404/500等情况直接调用即可packageresponseimport( "github.com/gin-gonic/gin" "net/http")......
  • Golang 几个小时前 几分钟 几天前的处理
    在用golang爬虫的时候总会遇到10天前10分钟前刚刚这种很影响我们爬取正常事件所以我写了个方法来格式化这种事件packageutilsimport( "fmt" "regexp" "strco......