Un cours pour se lancer dans la programmation avec le langage Go (golang).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
1.2 KiB

  1. package main
  2. import "fmt"
  3. func init() {
  4. fmt.Println("Salut depuis main 1")
  5. }
  6. func init() {
  7. fmt.Println("Salut depuis main 2")
  8. }
  9. func init() {
  10. fmt.Println("Salut depuis main 3")
  11. }
  12. func main() {
  13. fmt.Println("Salut tout le Monde")
  14. q, r := NamedDivide(15, 6)
  15. fmt.Printf("Division 15 / 6, Quotient: %d Reste: %d\n", q, r)
  16. fmt.Printf("Facture: %.2f\n", Facture(8.75, 10.2, 3.7))
  17. Bonjour()
  18. Bonjour := func() string {
  19. return "On cache la fonction externe Bonjour"
  20. }
  21. TakeFunc(GiveFunc())
  22. TakeFunc(Bonjour)
  23. }
  24. func Bonjour() {
  25. fmt.Println("Bonjour")
  26. }
  27. // ceci provoque une erreur de redefinition
  28. // func Bonjour(m string) {
  29. // fmt.Println(m)
  30. // }
  31. func Add(a, b int) int {
  32. return a + b
  33. }
  34. func Divide(a, b int) (int, int) {
  35. return a / b, a % b
  36. }
  37. func NamedDivide(a, b int) (quotient int, remainder int) {
  38. quotient, remainder = a/b, a%b
  39. return
  40. }
  41. func TakeFunc(take func() string) {
  42. data := take()
  43. fmt.Println(data)
  44. }
  45. func GiveFunc() func() string {
  46. f := func() string {
  47. return "Fonction retour"
  48. }
  49. return f
  50. }
  51. func Facture(mht float64, items ...float64) (total float64) {
  52. for _, item := range items {
  53. total += item
  54. }
  55. total *= (1 + mht*.01)
  56. return
  57. }