2017-05-03 6 views
1

私のgolangプロジェクトの1つに、私はos.FileInfoを試してみました。os.FileInfo mockが一致しません

golangのインターフェイス処理を正しく理解しているかどうかはわかりません。 私が知る限り、次のコードはうまくいくはずですが、インターフェイスが一致しないというCompilererrorが表示されます。

this go-docの例を少し修正して、自分でテストしたい場合があります。 golangドキュメントで次の

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()) 
    } 
} 

ioutil.ReadDir(".")は私のselfwritten fileインターフェースの専門でなければなりませんos.FileInfoのスライスを返す必要があります。

誰でもこの誤解や絡み合いを助けてくれますか?

大変ありがとうございます!

+1

これは、https://golang.org/doc/faq#convert_slice_of_interfaceでの話です。問題はスライスであり、インターフェースではありません。 – Volker

+1

http://stackoverflow.com/a/12754757/859353 – jcbwlkr

答えて

0

os.FileInfoは、fileに変換できます。しかし、[]os.FileInfo[]fileに変換しようとしています。スライスはインターフェイスではなく、アサートできません。

関連する問題