第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用來自不同文件的golang中的接口方法

使用來自不同文件的golang中的接口方法

Go
守著一只汪 2023-04-17 16:01:37
我method想提供一些接口以使其更容易測(cè)試這是功能文件Afunc readFile(s source) ([]byte, error) {        p := fs.GetPath()        file, err := ioutil.ReadFile(p + "/" + s.path + "/" + "rts.yaml")        if err != nil {            return yamlFile, fmt.Errorf("erro reading file : %s", err.Error())        }        return file, err    }現(xiàn)在我為它添加結(jié)構(gòu)type source struct{    path string}界面readFile是implementingtype fileReader interface {    readFile(path string) ([]byte, error)}現(xiàn)在我需要從另一個(gè)文件調(diào)用這個(gè)函數(shù)但是我在執(zhí)行此操作時(shí)遇到錯(cuò)誤檔案Btype source struct {    path string}a := source{}yamlFile, err := readFile(a)我在這里錯(cuò)過了什么?
查看完整描述

1 回答

?
LEATH

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊

source導(dǎo)入包含結(jié)構(gòu)的包File A,然后使用該結(jié)構(gòu)初始化變量,然后將變量傳遞給函數(shù)readFile。


檔案B


import A

a := A.Source{}

因?yàn)槲募?A 中的結(jié)構(gòu)與文件 B 中的結(jié)構(gòu)source不同。文件 A 的結(jié)構(gòu)正在實(shí)現(xiàn)接口,這就是為什么您需要導(dǎo)入源結(jié)構(gòu)然后將其傳遞給函數(shù)的原因。sourcesource


一個(gè)應(yīng)該注意的是,要使任何結(jié)構(gòu)或函數(shù)可導(dǎo)出,您應(yīng)該以大寫字母開頭結(jié)構(gòu)或函數(shù)名稱。


文件A


// make struct exportable

type Source struct{

    path string

}

實(shí)現(xiàn)了不同于


檔案B


type source struct{

    path string

}

它沒有實(shí)現(xiàn)接口。


已編輯


文件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))

}


查看完整回答
反對(duì) 回復(fù) 2023-04-17
  • 1 回答
  • 0 關(guān)注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)