1
在我的一个golang项目中,我去模拟os.FileInfo
作为测试用例。os.FileInfo模拟不匹配
我不知道我是否正确理解golang的接口处理。 据我所知,下面的一段代码应该可以工作,但是我得到一个Compilererror,说该接口不匹配。
我修改了this go-doc例子,如果你想自己测试一下。
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())
}
}
在golang文档之后,该ioutil.ReadDir(".")
应返回os.FileInfo
片应该是我selfwritten file
接口的专业化。
任何人都可以帮助我摆脱这种地狱般的误解和纠缠吗?
非常感谢你们!
这就是https://golang.org/doc/faq#convert_slice_of_interface谈到的内容。问题是切片而不是界面。 – Volker
结帐http://stackoverflow.com/a/12754757/859353 – jcbwlkr