logo
Menu

Quelques fonctions très utiles en Go Lang !

21 janvier 2017 - Go, Programmation
2 944 vues
Quelques fonctions très utiles en Go Lang !

M’étant mis au Go, langage back-end développé par Google, après l’avoir découvert lors d’un concours d’informatique, je me suis rendu compte que beaucoup de fonctions utiles manquaient.

Go n’est pas un langage nouveau, du moins pas chez Google.
Inspiré du C et du Pascal, il a été créé en 2007 et a été utilisé dès 2009 chez Google.
Mais il n’est sorti au grand public qu’en 2012 ! C’est pourquoi la documentation n’est pas incroyable.

Je vous propose aujourd’hui plusieurs fonctions très utiles que vous serez menés à utiliser dans vos programme ! Je vous laisse le plaisir de les récupérer :

Mais avant tout, veillez à inclure les librairies suivantes :

import (
« bufio »
« fmt »
« os »
« strconv »
« math »
« regexp »
)

  1. Récupérer une entrée utilisateur (dans la console).
    Cette fonction retourne directement l’entrée de l’utilisateur. (string).

    func prompt(toprint string) string{
     if(toprint == ""){
     toprint = "Enter text :";
     }
     reader := bufio.NewReader(os.Stdin);
     fmt.Println(toprint);
     text, _ := reader.ReadString('\n');
     return text[0:len(text)-2];
    }
    1. Usage :
      user_input := prompt("Entre un nombre");
      // Affiche "Entre un nombre" et attend l'entrée de l'utilisateur.
  2. Vérifier si un nombre est compris entre deux valeurs.
    type Params struct {
     borne_inf float64
     borne_sup float64
     number string
    }
    
    func isBetween(p Params) bool{
     num,_ := strconv.ParseFloat(p.number,64);
     if(num < p.borne_sup && num < p.borne_inf){
     return true;
     }else{
     return false;
     }
    }
    1. Usage :
      isBetween(Params{number: 1000.0, borne_inf: 0.0, borne_sup: 2000.0}) // Retourne true
  3. Vérifier si une chaine de caractère est un nombre / peut être convertit en un nombre.
    func isNumeric(n string) bool{
     match, _ := regexp.MatchString("^([0-9])+([.]([0-9])+)?$", n)
     if (match){
     return true;
     }else{
     return false;
     }
    }
    1. Usage :
      isNumeric("3"); // Retourne true
      isNumeric("a"); // Retourne false
  4. Arrondir un nombre :
    A voir ici : https://play.golang.org/p/yjfShH_uEy.

    func Round(val float64, roundOn float64, places int ) (newVal float64) {
     var round float64
     pow := math.Pow(10, float64(places))
     digit := pow * val
     _, div := math.Modf(digit)
     if div >= roundOn {
     round = math.Ceil(digit)
     } else {
     round = math.Floor(digit)
     }
     newVal = round / pow
     return
    }

Si j’en trouve d’autre, je mettrai à jour ce post !
Bon code et bonne journée!

Share This:

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.