Costanti

Costanti #

// Go ammette l'utilizzo di _costanti_ di tipo string, boolean,
// e di tipo numerico

package main

import "fmt"
import "math"

// La keyword `const` viene utilizzata per dichiarare una costante
const s string = "constant"

func main() {
    fmt.Println(s)

    // La keyword `const` può essere utilizzata ovunuque
    // la keyword `var` è ammessa
    const n = 500000000

    // Le espressioni costanti vengono calcolate in aritmetica
    // a precisione arbitraria
    const d = 3e20 / n
    fmt.Println(d)

    // Una costante numerica non ha un tipo fin quando non gli
    // viene assegnato esplicitamente, ad esempio tramite un cast.
    fmt.Println(int64(d))

    // Per assegnare un tipo ad una costante di tipo numerico
    // si può anche utilizzare la constante in un contesto che richiede
    // un tipo, quali un assegnamento od una chiamata di funzione.
    // In questo caso `math.Sin` si aspetta un valore di tipo `float64`.
    fmt.Println(math.Sin(n))
}
$ go run constant.go 
constant
6e+11
600000000000
-0.28470407323754404