Maison  >  Article  >  développement back-end  >  Un article vous apprend à utiliser les modules du langage Go

Un article vous apprend à utiliser les modules du langage Go

Go语言进阶学习
Go语言进阶学习avant
2023-07-20 15:55:061438parcourir
Avant-propos

go moudules est un outil de gestion de paquets pour Go. Il est officiellement fourni et est relativement fiable. La version minimale requise est 1.11+.

peut être compris comme l'environnement virtuel de Python, ou le maven de Java, ou le compositeur de PHP.

Le problème essentiel qu'il résout est le problème du chaos dans la gestion des paquets.

Quoi qu'il en soit, utilisez-le et c'est tout. Il n'y a que de bonnes choses et pas de mauvaises choses.


Configuration (ne vous inquiétez pas)

GO111MODULE=off # 不适用modules功能
GO111MODULE=off #使用molules功能,不会去GOPATH下找依赖包, 1.11+版本默认开启
GO111MODULE=auto:Golang # Golang自己简则是不是使用modules功能

Selon la commande ci-dessus, on peut conclure que dans la version 1.11+, les modules go peuvent être utilisés par défaut, et aucun autre des réglages sont requis.


Quelle est la différence entre celui-ci et le go get direct traditionnel

Lorsque les modules go ne sont pas utilisés, nous allez cherchergo get下载的包,会默认放在%GOPATH%/src目录下。

Un article vous apprend à utiliser les modules du langage Go

启用go modules后,包都会下载到%GOPATH%/pkg/modLe package téléchargé sera placé dans %GOPATH%/src

répertoire.

Un article vous apprend à utiliser les modules du langage Go

Un article vous apprend à utiliser les modules du langage Go

Après avoir activé les modules go, le Le package sera téléchargé%GOPATH%/pkg/mod

dossier.

🎜🎜🎜🎜 et il aura un numéro de version, résolvant essentiellement complètement le problème de dépendance. 🎜🎜🎜🎜🎜🎜🎜

开始使用

创建go.mod文件

go.modgo.mod文件相当于requirement.txt文件,里面会放一些所需要的依赖包。


开始使用

我创建了一个gomod-demo文件夹。

Un article vous apprend à utiliser les modules du langage Go

并且CMD文件相当于requirement.txt

🎜文件,里面会放一些所需要的依赖包。🎜🎜🎜🎜
🎜🎜

🎜开始使用🎜🎜

gomod-demo🎜🎜文件夹。🎜🎜

Un article vous apprend à utiliser les modules du langage Go🎜🎜

🎜并且🎜🎜CMD🎜🎜进入此文件夹里面。🎜🎜

Un article vous apprend à utiliser les modules du langage Go

执行命令

后面这个gomod-demo可以随便写,建议和文件夹名字一样。

Un article vous apprend à utiliser les modules du langage Go

成功后,文件夹下会多了一个go.mod文件,代表成功。

Un article vous apprend à utiliser les modules du langage Go

我用Goland打开这个gomod-demo

后面这个

Un article vous apprend à utiliser les modules du langage Go🎜可以随便写,建议和文件夹名字一样。🎜🎜<p style=" margin-bottom:><img src="https://img.php.cn/upload/article/001/272%20/559/5ea8134e031bdef72b2d08d034724a54-4.png" alt="Un article vous apprend à utiliser les modules du langage Go" >🎜<p style="max-width:90%"><span md-inline="plain" style="font-family: " open sans neue helvetica arial sans-serif taille de la police orphelins du texte d sortcheck="false" blanc pr><code style="font-family: var(--monospace);alignement vertical : initial;largeur de bordure : 1px;bordure -style : uni ; couleur de la bordure : rvb (231, 234, 237) ; couleur d'arrière-plan : rvb (243, 244, 244); -size : 0.9em;">go.mod🎜文件,代表成功。🎜🎜

Un article vous apprend à utiliser les modules du langage Go🎜🎜

🎜我用Goland打开这个🎜🎜gomod-demo🎜🎜文件夹。🎜🎜🎜🎜🎜

description du fichier go.mod

  1. module : nom du module.

  2. require : Liste et version des packages de dépendances.

  3. exclure : interdire la liste des packages dépendants (ne prend effet que lorsque le module actuel est le module principal).

  4. replace : Remplace la liste des packages de dépendances (ne prend effet que lorsque le module actuel est le module principal).

Bien sûr, nous n'avons fondamentalement pas besoin d'y toucher, ils sont tous modifiés via des commandes ou l'IDE.


Facile à utiliser

Par exemple, je dois utiliser un xstringsxstrings 包。

github地址:https://github.com/huandu/xstrings package.

adresse github :

执行下载命令。

Un article vous apprend à utiliser les modules du langage Go

go.mod文件会自动添加一个依赖包。

Un article vous apprend à utiliser les modules du langage Go

代码:

package main

import (
    "fmt"
    "github.com/huandu/xstrings"
)

func main() {
    s := "heheh ADSL附近"
    center := xstrings.Count(s, "h")
    fmt.Println(center)
}

go连接Mysql

github文档如下。

Un article vous apprend à utiliser les modules du langage Go

执行下载命令 go get -u github.com/go-sql-driver/mysql

Un article vous apprend à utiliser les modules du langage Go

go.mod文件如下。

Un article vous apprend à utiliser les modules du langage Go

代码:

package main

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
    "time"
)

func main() {
    //s := "heheh ADSL附近"
    //center := xstrings.Count(s, "h")
    //fmt.Println(center)
    db, err := sql.Open("mysql", "user:password@/dbname")
    if err != nil {
        panic(err)
}
    // See "Important settings" section.
    db.SetConnMaxLifetime(time.Minute * 3)
    db.SetMaxOpenConns(10)
    db.SetMaxIdleConns(10)
}

可能出现的异常

如果使用go get 第三方包时,goland无法导入,或者报错,或者没有Go Modules

Un article vous apprend à utiliser les modules du langage Go

项目目录下,使用go mod download下载一下,基本可以解决问题,只要有Go Modules,就代表没问题。

Un article vous apprend à utiliser les modules du langage Go

如果还是没有Go Modules,在Goland中settings->Go->GoModules(vgo)

Un article vous apprend à utiliser les modules du langage Go

go mod所有命令

在当前文件夹下初始化一个新的 module,创建 go.mod 文件:go mod init name
拉取缺少的模块,移除不用的模块:go mod tidy
将依赖复制到 vendor 下:go mod vendor
下载依赖:go mod download
检验依赖:go mod verify
显示模块依赖图:go mod graph
解释为什么需要依赖:go mod why
编辑 go.mod 文件:go eidt
查看命令列表:go mod
查看命令帮助文档:go help mod

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer