Un essai en langage Go

Soyez le premier à donner votre avis sur cette source.

Vue 417 fois - Téléchargée 19 fois

Description

Le langage de programmation Go est de plus en plus important à juste titre en raison de ses fonctionnalités spécifiques et des avantages obtenus avec son utilisation. Pour se faire une opinion personnelle le mieux est d'en faire un essai soi-même. Le petit programme présenté ici effectue une opération arithmétique au choix entre deux fractions. On peut remarquer que le langage source se comprend facilement et qu'il est inutile d'inclure des commentaires qui ne feraient que paraphraser les instructions.

On trouve facilement sur Internet tout ce qu'il faut pour programmer en langage Go. On y trouve aussi de nombreux logiciels dont certains sont très évolués ainsi que diverses documentations. Le document suivant présente chaque fonctionnalité du langage Go accompagnée d'un exemple : https://go.developpez.com/tutoriels/go-par-l-exemple/

Source :

package main

import "fmt"
import "errors"

func PGCD(a int64, b int64) int64 {
	if a < 0 {
		a = -a
	}
	if b < 0 {
		b = -b
	}
	for b != 0 {
		a, b = b, a%b
	}
	return a
}
func Add(n1, d1, n2, d2 int64) (int64, int64) {
	var n int64 = n1*d2 + n2*d1
	var d int64 = d1 * d2
	if d < 0 {
		n = -n
		d = -d
	}
	div := PGCD(n, d)
	n = n / div
	d = d / div
	return n, d
}
func Sub(n1, d1, n2, d2 int64) (int64, int64) {
	var n int64 = n1*d2 - n2*d1
	var d int64 = d1 * d2
	if d < 0 {
		n = -n
		d = -d
	}
	div := PGCD(n, d)
	n = n / div
	d = d / div
	return n, d
}
func Mul(n1, d1, n2, d2 int64) (int64, int64) {
	var n int64 = n1 * n2
	var d int64 = d1 * d2
	div := PGCD(n, d)
	n = n / div
	d = d / div
	return n, d
}
func Div(n1, d1, n2, d2 int64) (int64, int64, error) {
	if n2 == 0 {
		return 0, 1, errors.New("division par 0")
	}
	var n int64 = n1 * d2
	var d int64 = d1 * n2
	if d < 0 {
		n = -n
		d = -d
	}
	div := PGCD(n, d)
	n = n / div
	d = d / div
	return n, d, nil
}

Affichage :

L'horrible bug CCM-CS du backslash connu et signalé depuis très longtemps et rappelé ensuite plusieurs fois n'est toujours pas corrigé. Cela entrainerait un affichage erroné de la fonction main() qui serait inapproprié pour une lecture correcte. Le fichier source main.go encodé en UTF-8 avec le retour à la ligne Unix (LF) et non pas le retour à la ligne Windows (CR+LF) est entièrement disponible dans le zip ci-joint. Il est complet et sans aucune dépendance.

Codes Sources

A voir également

Ajouter un commentaire Commentaire
Messages postés
3829
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
8 janvier 2021
114
Bonjour !

Quelques remarques:
  • Un "go fmt" serait de mise ici
  • Une "error" doit toujours être le dernier argument de sortie, par convention (si tu utilises VsCode, il est livré avec un "linter" qui souligne en jaune ce genre de souci).


Note admin:
  • Il n'y aucun moyen actuel de poster du code Go, donc ça sera posté ici en attendant l'ouverture d'une vraie section.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.