2017-06-21 7 views
-7

私は関数を研究し、教科書のための簡単なスクリプトを書いて、2つのエラーがありました。 "あまりにも多くの" どのように返すためにこの単純なスクリプトで何が問題になっていますか?

package main 
import "fmt" 

func zero(x int) { 
    x = 0 
    return x 
} 
func main() { 
    x := 5 
    x = zero(x) 
    fmt.Println(x) 
} 

あまりにも多くの引数(文字列戻りX)

?唯一のものです!

ゼロ(x)の値(文字列のx =ゼロ(x))を

として使用し、私は彼が私に言うことを理解していません。

+2

としてzero(x)を使用する方法について説明します理由です

。 –

+5

1)スクリプトではありません。 2)あなたの誤りは何が間違っているかを正確に伝えます。あなたはそれらを読んだのですか? – Flimzy

+3

スネルキーになれば、人々があなたを助けてくれるとは思わないでしょう。つまり、単純なGoogleの検索機能では、必要なヒントを得ることができます。 –

答えて

1

FUNCのint

package main 
import "fmt" 

func zero(x int) int { 
    x = 0 
    return x 
} 
func main() { 
    x := 5 
    x = zero(x) 
    fmt.Println(x) 
} 
0
package main 

import "fmt" 

func zero(x int) int { 
    x = 0 
    return x 
} 

func main() { 
    x := 5 
    x = zero(x) 
    fmt.Println(x) 
} 
0

私は、これはオリジナルのアイデアに近いと信じて...

package main 

import "fmt" 

func zero(x *int) { 
    *x = 0 
    return 
} 

func main() { 
    x := 5 
    zero(&x) 
    fmt.Println(x) 
} 
0

too manyはあなたの関数は、関数のシグネチャを指定することをより多くの値を返していることを意味し。

あなたの場合、関数の署名func zero(x *int)は、この関数はすべてのparamsを返さず、関数本体の中で1つの値:return xを返していると言います。したがって10の場合はtoo manyと予想されます。正確に1つ以上。

zero(x) used as valueは、何も返さない関数を呼び出していて、存在しない戻り値を変数:x = zero(x)に割り当てようとしていることを伝えています。コンパイラはあなたが戻り値の型を指定するのを忘れ値

関連する問題