gpt4 book ai didi

unit-testing - os.FileInfo 模拟不匹配

转载 作者:IT王子 更新时间:2023-10-29 02:22:01 26 4
gpt4 key购买 nike

在我的一个 golang 项目中,我为测试用例模拟了 os.FileInfo

我不确定我是否正确理解了golang的接口(interface)处理。据我所知,以下代码应该可以工作,但我收到一个编译器错误,指出接口(interface)不匹配。

我修改了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 这应该是我自己编写的 文件接口(interface)。

谁能帮我走出这 hell 般的误会和纠结,好吗?

非常感谢你们!

最佳答案

os.FileInfo 是接口(interface),可以转换成file。但是您尝试将 []os.FileInfo 转换为 []file。 Slice 不是接口(interface),不能断言。

关于unit-testing - os.FileInfo 模拟不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43769695/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com