2013-05-29 12 views
7

Sono un principiante assoluto del linguaggio di programmazione Go e sto cercando di definire i tipi di parametri di una funzione Go denominata addStuff che aggiunge semplicemente due numeri interi e restituisce la loro somma, ma vedo il seguente errore quando provo a compilare la funzione:Impostare i tipi di parametri delle funzioni in Go

prog.go:6: undefined: a 
prog.go:6: undefined: b 
prog.go:7: undefined: a 
prog.go:7: undefined: b 
prog.go:7: too many arguments to return 
prog.go:11: addStuff(4, 5) used as value 

Ecco il codice che ha prodotto questo errore di compilazione:

package main 

import "fmt" 
import "strconv" 

func addStuff(a, b){ 
    return a+b 
} 

func main() { 
    fmt.Println("Hello," + strconv.Itoa(addStuff(4,5))) 
} 

che cosa sto facendo male qui, e qual è il modo corretto di impostare la tipi di parametri in Go?

+4

Considerando la quantità di lingue dattiloscritte ci sono, questa è (a mio avviso) una domanda valida. – thwd

risposta

26
func addStuff(a int, b int) int { 
    return a+b 
} 

Questo renderà a e b parametri di tipo int, ed hanno la funzione di restituire un int. Un'alternativa è func addStuff(a, b int) int che inoltre renderà entrambi i parametri a e di tipo int.

Consiglio vivamente lo A Tour of Go che insegna le nozioni di base di Go.

+1

questo può anche essere scritto come 'func addStuff (a, b int) int' – thwd

+4

@jnml sai che sei in grado di modificare le risposte, giusto? (Inoltre, leggere oltre l'esempio di codice può essere utile.) –

+0

Vorrei modificare la tua risposta solo per correggere un errore di battitura o così, per non cambiare mai la tua idea. E sì, ho letto la tua risposta per intero prima di scrivere il mio commento precedente. Stai confondendo "alternativa" con "codice idiomatico". – zzzz

Problemi correlati