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