首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用go(cayley)创建一个新的四合一商店?

用go(cayley)创建一个新的四合一商店?
EN

Stack Overflow用户
提问于 2016-03-18 15:02:18
回答 1查看 457关注 0票数 2

我是新手,我正在尝试使用cayley/graph库(NewQuadStore())创建一个四元库。我正在尝试对testdata.nq文件执行此操作,该文件是cayley附带的示例数据。下面是我的代码:

代码语言:javascript
复制
package main

import (
  "fmt"
  "github.com/google/cayley/graph"
  "log"
)

func main() {

var register graph.QuadStoreRegistration
graph.RegisterQuadStore("testdata", register)

store, err := graph.NewQuadStore("testdata", "data/testdata.nq", nil)
if err != nil {
    log.Fatalln(err)
}
defer store.Close()
store.Type()

iterator := store.NodesAllIterator()
for iterator.NextPath() {
    fmt.Println(store.NameOf(iterator.Result()))
}
}

它编译时没有任何错误,但在我运行它时会产生一种恐慌。它看起来像这样:

代码语言:javascript
复制
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x47045e]

goroutine 1 [running]:
panic(0x5dbfa0, 0xc82000a120)
/usr/local/go/src/runtime/panic.go:464 +0x3e6
github.com/google/cayley/graph.NewQuadStore(0x625c60, 0x8, 0x642500,   0x10, 0x0, 0x0, 0x0, 0x0, 0x0)
/home/himanshi/dev/go/src/github.com/google/cayley/graph/quadstore.go:179 +0x23e
main.main()
/home/himanshi/dev/go/src/cayley/main.go:14 +0xcd

我试图查看quadstore.go内部以寻找问题所在,但我找不到问题所在,在godoc上也找不到任何东西。请帮帮忙。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-03-18 19:54:41

代码语言:javascript
复制
var register graph.QuadStoreRegistration

这会创建一个零值的结构。register.NewFunc为零。graph.NewQuadStore尝试调用它。

您必须使用某种类型的NewFunc初始化register,例如https://github.com/google/cayley/blob/master/graph/mongo/quadstore.go#L37

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36078122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档