У меня есть eclipse software ready to go
.
Я ищу отладочные выходные данные для вызова search.RetrieveFeeds()
.
Итак, по сути, я смогу увидеть массив структур Feed, чтобы я знал, что он обработал файл данных json
Когда я выполню это, я получу этоошибка:
main\main.go:10:38: multiple-value search.RetrieveFeeds() in single-value context
Я посмотрел здесь: Несколько значений в контексте с одним значением , но это было немного над моей головой.
Здесьэто то, что у меня есть в моей архитектуре:
Путь к файлу данных Json
src/data/data.json
Данные для файла Json
[
{
"site": "npr",
"link": "http://www.npr.org/rss/rss.php?id=1001",
"type": "rss"
},
{
"site": "cnn",
"link": "http://rss.cnn.com/rss/cnn_world.rss",
"type": "rss"
},
{
"site": "foxnews",
"link": "http://feeds.foxnews.com/foxnews/world?format=xml",
"type": "rss"
},
{
"site": "nbcnews",
"link": "http://feeds.nbcnews.com/feeds/topstories",
"type": "rss"
}
]
Путь к файлу основного метода
src/main/main.go
Код для основного метода
package main
import (
"fmt"
"search"
)
func main() {
fmt.Println("HellAo")
var feeds = search.RetrieveFeeds()
fmt.Printf("%v",feeds)
}
Путь к файлу поиска
src/search/feed.go
Поиск кода файла
package search
import (
"encoding/json"
"os"
)
const dataFile = "data/data.json"
type Feed struct {
Name string `json:"site"`
URI string `json:"link"`
Type string `json:"type"`
}
func RetrieveFeeds() ([]*Feed, error){
file, err := os.Open(dataFile)
if err != nil {
return nil, err
}
defer file.Close()
var feeds []*Feed
err = json.NewDecoder(file).Decode(&feeds)
return feeds, err
}
ОБНОВЛЕНИЕ
Я изменилпуть к данным json:
const dataFile = "src/data/data.json"
И теперь дамп отладки говорит:
<nil>