Maison > développement back-end > Golang > le corps du texte

Un article vous apprend à utiliser les modules du langage Go

Libérer: 2023-07-20 15:55:06
avant
1451 Les gens l'ont consulté
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功能
Copier après la connexion

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 < /code></p><p style="margin-bottom: 0px;"> dossier. <span style="font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;font-size: 16px;orphans: 4;text-align: start;white-space: pre-wrap;"><br/></span></p>🎜🎜🎜🎜 et il aura un numéro de version, résolvant essentiellement complètement le problème de dépendance. 🎜🎜🎜🎜🎜🎜🎜<h2 cid="n93" mdtype="heading" style="break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.75em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.225;cursor: text;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;text-align: start;"><span md-inline="plain">开始使用</span></h2><h3 cid="n94" mdtype="heading" style="break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.43;cursor: text;white-space: pre-wrap;font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;text-align: start;"><span md-inline="plain">创建go.mod文件</span></h3><p cid="n95" mdtype="paragraph" style="line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;font-size: 16px;text-align: start;"><span md-inline="code" spellcheck="false"><code style="font-family: var(--monospace); vertical-align: initial; border-width: 1px; border-style: solid ; couleur de la bordure : RVB (231, 234, 237) ; couleur d'arrière-plan : RVB (243, 244, 244) ; rayon de la bordure : 3 px ; rembourrage à droite : 2 px ; rembourrage à gauche : 2 px ; taille de la police : 0,9. em;">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: 0px;"><img src="https://img.php.cn/upload/article/001/272 /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", "Clear Sans" , "Helvetica Neue", Helvetica, Arial, sans-serif ; taille de la police : 16 px ; orphelins : 4 ; alignement du texte : début; 🎜<span md-inline="code" sortcheck="false" style="font-family : "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif ; taille de police : 16 px ;orphelins : 4;alignement du texte : début;espace blanc : pré-enveloppement;"><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 (
    "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)
}
Copier après la connexion

可能出现的异常

如果使用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
Copier après la connexion

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!

Étiquettes associées:
source:Go语言进阶学习
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal