আমি কেবল গো ট্যুর দিয়ে কাজ করছি , এবং আমি পয়েন্টার এবং ইন্টারফেস সম্পর্কে বিভ্রান্ত। কেন এই গো কোডটি সংকলন করে না?
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
func main() { var ps *Struct = new(Struct) var pi *Interface var i Interface i = ps pi = &i fmt.Printf("%v, %v, %v\n", *ps, pi, &i) i = *ps fmt.Printf("%v, %v, %v\n", *ps, pi, i) _, _, _ = i, pi, ps }
মাঠটিকে সমৃদ্ধ করার এবং নিজের সিদ্ধান্তে নেওয়ার পরামর্শ দিতে পারি