2012-10-17 19 views
8
में struct को

मैं कोई त्रुटि आई है नीचे दिए गए कोड को लागू करते हुए:प्वाइंट Golang

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 के बारे में त्रुटि नहीं देते? अग्रिम में धन्यवाद।

उत्तर

13

बस

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

कर आप इस तथ्य *(ptr.a) और ptr.a पर ++ लागू करने की कोशिश कर रहे थे एक पूर्णांक, नहीं किसी पूर्णांक के लिए सूचक है।

आप (*ptr).a++ इस्तेमाल किया जा सकता था है, लेकिन यह आवश्यक नहीं है के रूप में जाओ स्वचालित रूप से ptr.a हल करती है, तो ptr एक सूचक है, यही कारण है कि आप जाओ में -> की जरूरत नहीं है है।

+1

उत्तर के लिए धन्यवाद, यह मेरे लिए उपयोगी है। – Coder

संबंधित मुद्दे