Это глупый пример, с которым я играл, исследуя интерфейсы. Я обернул интерфейс вокруг int, чтобы он мог озвучивать свое значение:
package intspeaker
import (
"fmt"
)
type IntSpeaker interface {
Speak()
}
type SpeakNumber int
func (ic SpeakNumber) Speak() {
fmt.Println("My value is ", ic)
}
Затем я создаю экземпляр интерфейса, инициализирую значение и приказываю ему озвучивать свое значение:
package main
import "./intspeaker"
import "fmt"
func main() {
var speaker intspeaker.IntSpeaker = intspeaker.SpeakNumber(5)
speaker.Speak()
fmt.Println(speaker) // output = 5
var getIt int = speaker // compile error: cannot use speaker
// (type intspeaker.IntSpeaker) as type int
}
Есть ли способ разыменовать значение int из интерфейса?