1 回答
TA贡献1936条经验 获得超6个赞
source导入包含结构的包File A,然后使用该结构初始化变量,然后将变量传递给函数readFile。
档案B
import A
a := A.Source{}
因为文件 A 中的结构与文件 B 中的结构source不同。文件 A 的结构正在实现接口,这就是为什么您需要导入源结构然后将其传递给函数的原因。sourcesource
一个应该注意的是,要使任何结构或函数可导出,您应该以大写字母开头结构或函数名称。
文件A
// make struct exportable
type Source struct{
path string
}
实现了不同于
档案B
type source struct{
path string
}
它没有实现接口。
已编辑
文件A
package main
import (
"fmt"
"io/ioutil"
"os"
)
type Source struct {
Path string
}
type fileReader interface {
readOneFile() ([]byte, error)
}
func(s Source) readOneFile() ([]byte, error) {
cwd, err := os.Getwd()
file, err := ioutil.ReadFile(fmt.Sprintf("%s/file.txt", cwd))
if err != nil {
return nil, fmt.Errorf("erro reading file : %s", err.Error())
}
return file, err
}
档案B
package main
import (
"fmt"
)
func main() {
s := Source{}
data, err := s.readOneFile()
if err != nil {
fmt.Errorf("Error in reading the file")
}
fmt.Println(string(data))
}
- 1 回答
- 0 关注
- 88 浏览
添加回答
举报