Operators
Operatori combinano operandi in espressioni.
I confronti sono discussi altrove. Per gli altri operatori binari, i tipi di operandi devono essere identici a meno che l'operazione non contenga le costanti o non tipizzate. Per le operazioni che coinvolgono solo le costanti, vedere la sezione sulle espressioni costanti.
Tranne per le operazioni di spostamento, se un operando è una costante non tipizzata e l'altro operando non lo è, la costante viene convertita nel tipo dell'operando .
Ad esempio, utilizzando l'operatore "*
" (moltiplicazione),
package main
import (
"time"
)
func main() {
// works - 1000 is an untyped constant
// which is converted to type time.Duration
time.Sleep(1000 * time.Millisecond)
// fails - v is a variable of type int
// which is not identical to type time.Duration
var v = 1000
// invalid operation: i * time.Millisecond (mismatched types int and time.Duration)
time.Sleep(v * time.Millisecond)
}
Mostraci il messaggio di errore. –
Messaggio di errore: 'operazione non valida: i * time.Millisecond (tipi non corrispondenti int e time.Duration)'. – Kavu
@Kavu huh ... mi sorprende il precedente, quindi –