8

以下のコードの実装中にエラーが発生しました:

package main

import (
    "fmt" 
)

type Struct struct {
    a int
    b int
}

func Modifier(ptr *Struct, ptrInt *int) int {
    *ptr.a++
    *ptr.b++
    *ptrInt++
    return *ptr.a + *ptr.b + *ptrInt
}

func main() { 
    structure := new(Struct)
    i := 0         
    fmt.Println(Modifier(structure, &i))
}

それは私に「ptr.a(タイプint)の無効な間接...」についてのエラーを与えます。また、コンパイラがptrIntに関するエラーを表示しないのはなぜですか?前もって感謝します。

4

1 に答える 1

13

ただやる

func Modifier(ptr *Struct, ptrInt *int) int {
    ptr.a++
    ptr.b++
    *ptrInt++
    return ptr.a + ptr.b + *ptrInt
}

あなたは実際に適用しようとして++いて、intで*(ptr.a)ありptr.a、intへのポインタではありません。

使用することもできますが、Goがポインタであるかどうかを(*ptr).a++自動的に解決するため、これは必要ありません。そのため、Goにはありません。ptr.aptr->

于 2012-10-17T09:55:45.300 に答える