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 »
)
- 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]; }
- Usage :
user_input := prompt("Entre un nombre"); // Affiche "Entre un nombre" et attend l'entrée de l'utilisateur.
- Usage :
- 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; } }
- Usage :
isBetween(Params{number: 1000.0, borne_inf: 0.0, borne_sup: 2000.0}) // Retourne true
- Usage :
- 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; } }
- Usage :
isNumeric("3"); // Retourne true isNumeric("a"); // Retourne false
- Usage :
- 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!