Un essai en langage Go

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

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.