gob/README.md

3.9 KiB
Raw Permalink Blame History

gob

Ensemble de librairies personnalisées en Go

Architecture

collection

Le paquet collection contient quelques fonctions utiles pour la gestion des slices (ajout, insertion, comparaison de slices, différence, intersection, conversion, map/reduce, etc.).

Il implémente également quelques collections non présentes, à lheure actuelle, dans la librairie standard :

  • Les piles : collection.Stack
  • Les files : collection.Queue
  • Les collections déléments uniques : collection.Set

collection/concurrent est une sous-bibliothèque pour alimenter les slices et les maps de manière concurrente et en toute sécurité.

collection/json permet de gérer des objets json (modification, parcours, import, export).

compare

Le paquet compare implémente différentes fonctions de comparaison de chaînes de caractères (insensible à la casse, tri naturel, prise en compte des accents, etc.), et permet daggréger plusieurs fonctions de comparaison.

convert

Le paquet convert fournit le nécessaire pour convertir des variables typées en dautres types de manière transparente. Types actuellement gérés :

  • Booléens,
  • Caractères (rune, byte),
  • Entiers (int, int8, int16, int32, int64, uint, uint8, uint16, uint62, uint64),
  • Nombres à virgule flottante (float32, float64),
  • Nombres complexes (complex64, complex128),
  • Chaînes de caractères,
  • Collections (slice, map),
  • Structures.

Tous ces types sont convertibles entre eux.

datetime

Le paquet datetime implémente des structures pour gérer des temps :

  • datetime.Clock : pour gérer une heure dans la journée,
  • datetime.Date : pour gérer une date, sans indication de lheure,
  • datetime.DateTime : pour gérer une date avec indication de lheure.
  • Range : pour gérer une période entre deux temps.

number

Le paquet number implémente une structure pour gérer des opérations sur les nombres réels.
Un nombre peut être présenté sous différentes formes (dans une base donnée) :

  • Format entier (ex: 58)
  • Format décimal (ex: 36.25)
  • Format scientifique (ex : 42.5E-18)
  • Fraction (ex : 12/5)

Un nombre peut être également indérminé (NaN, ±∞)

format

Le paquet format fournit le nécessaire pour formater la sortie terminal :

  • Alignement des entrées (utile pour afficher un tableau),
  • Couleurs et styles (gras, italique, etc.).

Seuls les terminaux supportant les chaînes déchappement ASCII sont supportés.

ini

Le paquet ini permet de parser et de gérer des fichiers de configuration (générations avec lextension .ini ou .conf).

option

Le paquet option implémente en Go les types Option et Result existant dans certains langages de programmation (comme Rust).

random

Le paquet random fournit des fonctions pour générer des variables avec des caractères aléatoires.

secret

Le paquet secret permet de générer des hashs ou de chiffrer des chaînes de caractères.

shell

Le paquet shell regroupe des sous-paquets dédiés à faciliter la programmation dapplications en ligne de commandes.

shell/command

shell/command définit des interfaces permettant de parser les arguments dune commande saisie. Une implémentation fonctionnelle est fournie dans le sous-paquet shell/command/flag.

shell/console

shell/console définit des interfaces dédiés à la programmation de CLI (Command Line Interface). Il fournit également des fonctions pour récupérer directement des entrées saisies dans le terminal dans des variables.

shell/file

shell/file permet de récupérer de façon détaillée les informations dun fichier ou dune arborescence de fichiers.

shell/scanner

shell/scanner fournit un outil pour découper une ou plusieurs lignes de caractères en mots selon des critères définis (chaîne déchappment, guillemets, etc.).