in einem meiner Golang-Projekte ging ich die os.FileInfo
für Testfälle spotten.os.FileInfo Schein nicht passend
Ich bin mir nicht sicher, ob ich das Interface-Handling von Golang richtig verstehe. So weit ich weiß, sollte das folgende Stück Code funktionieren, aber ich bekomme einen Compilererror, der sagt, dass die Schnittstelle nicht übereinstimmt.
Ich modifizierte this go-doc Beispiel ein bisschen für den Fall, dass Sie es selbst testen möchten.
package main
import (
"fmt"
"io/ioutil"
"log"
)
type file interface{
Name() string
}
func readFiles() []file{
files, err := ioutil.ReadDir(".")
if err != nil {
log.Fatal(err)
}
return files
}
func main() {
files := readFiles()
for _, file := range files {
fmt.Println(file.Name())
}
}
am golang doc Nach sollte die ioutil.ReadDir(".")
eine Scheibe os.FileInfo
Rückkehr, die eine Spezialisierung meiner selbstgeschriebenen file
Schnittstelle sein sollte.
Kann mir bitte jemand aus dieser Hölle von Missverständnissen und Verwicklungen helfen?
Vielen Dank Jungs!
Das spricht https://golang.org/doc/faq#convert_slice_of_interface. Das Problem ist die Scheibe und nicht die Schnittstelle. – Volker
Überprüfen Sie http://stackoverflow.com/a/12754757/859353 – jcbwlkr