मैं बस Go tour के माध्यम से काम कर रहा हूं, और मैं पॉइंटर्स और इंटरफेस के बारे में उलझन में हूं। यह गो कोड संकलित क्यों नहीं करता है?मैं * इंटरफ़ेस को * स्ट्रक्चर क्यों नहीं सौंप सकता?
package main
type Interface interface {}
type Struct struct {}
func main() {
var ps *Struct
var pi *Interface
pi = ps
_, _ = pi, ps
}
यानी अगर Struct
एक Interface
है, क्यों एक *Struct
एक *Interface
नहीं होगी?
त्रुटि संदेश मैं मिलता है:
prog.go:10: cannot use ps (type *Struct) as type *Interface in assignment:
*Interface is pointer to interface, not interface
भी देखें http://stackoverflow.com/q/20874798/260805 – Ztyx
यह इंटरफेस की तरह लग रहा निहित संकेत की तरह बर्ताव कर सकता है ... – Victor
मैं बेहतर बनाने के लिए सुझाव दे सकते हैं 'समारोह मुख्य() { \t वर ps * Struct = नई (struct) \t वर अनुकरणीय * इंटरफ़ेस \t वर मैं इंटरफ़ेस \t i = ps \t अनुकरणीय के साथ अपने खेल का मैदान = & मैं \t fmt.Printf ("% v,% v,% v \ n", * ps, pi, और i) \t i = * ps \t fmt.Printf ("% v,% v,% v \ n", * ps, अनुकरणीय, i) \t _, _, _ = मैं, अनुकरणीय, ps } 'और अपने खुद के conclussions – Victor