Un cours pour se lancer dans la programmation avec le langage Go (golang).
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

main.go 1.2 KiB

il y a 1 an
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package main
  2. import (
  3. "fmt"
  4. "math"
  5. "net/http"
  6. )
  7. type bob int
  8. func (b bob) ServeHTTP(w http.ResponseWriter, r *http.Request) {
  9. w.Write([]byte("Salut tout le Monde !"))
  10. }
  11. type Circle struct {
  12. Radius float64
  13. }
  14. type Rectangle struct {
  15. Width float64
  16. Height float64
  17. }
  18. type Shape interface {
  19. Area() float64
  20. }
  21. func GetArea(s Shape) float64 {
  22. return s.Area()
  23. }
  24. func (c *Circle) Area() float64 {
  25. return math.Pi * c.Radius * c.Radius
  26. }
  27. func (r Rectangle) Area() float64 {
  28. return r.Height * r.Width
  29. }
  30. func main() {
  31. circle := Circle{5.0}
  32. r1 := Rectangle{4.0, 5.0}
  33. r2 := &Rectangle{10.0, 15.0}
  34. area := circle.Area()
  35. fmt.Println(area)
  36. GetArea(&circle)
  37. GetArea(r1)
  38. GetArea(r2)
  39. var x interface{} = 10
  40. fmt.Println(x)
  41. str, ok := x.(string)
  42. if !ok {
  43. fmt.Println("Ne peut pas convertir l'interface x")
  44. }
  45. fmt.Printf("valeur: %v, Type: %T\n", x, x)
  46. x = 1
  47. fmt.Printf("valeur: %v, Type: %T\n", x, x)
  48. fmt.Printf("valeur: %v, Type: %T\n", str, str)
  49. var y interface{} = "go"
  50. switch v := y.(type) {
  51. case int:
  52. fmt.Printf("Le double de %v vaut %v\n", v, v*2)
  53. case string:
  54. fmt.Printf("%q a une longueur de %v octets\n", v, len(v))
  55. default:
  56. fmt.Printf("Le type de %T est inconnu !\n", v)
  57. }
  58. }