2017-07-16 44 views
3

我試圖運行一個塞去例如:不能運行塞去例子

package main 

    import (
    "github.com/aerospike/aerospike-client-go" 
    "fmt" 
    ) 

    func panicOnError(err error) { 
    if err != nil { 
     panic(err) 
    } 
    } 

    func main() { 
    // define a client to connect to 
    client, err := NewClient("127.0.0.1", 3000) 
    panicOnError(err) 

    key, err := NewKey("test", "aerospike", "key") 
    panicOnError(err) 

    // define some bins with data 
    bins := BinMap{ 
     "bin1": 42, 
     "bin2": "An elephant is a mouse with an operating system", 
     "bin3": []interface{}{"Go", 2009}, 
    } 

    // write the bins 
    err = client.Put(nil, key, bins) 
    panicOnError(err) 

    // read it back! 
    rec, err := client.Get(nil, key) 
    panicOnError(err) 

    fmt.Printf("%#v\n", *rec) 

    // delete the key, and check if key exists 
    existed, err := client.Delete(nil, key) 
    panicOnError(err) 
    fmt.Printf("Record existed before delete? %v\n", existed) 
} 

但我得到一個錯誤:

Unresolved reference NewClient... 
and many more... 

我已經運行了命令:

go get github.com/aerospike/aerospike-client-go 

它已將該軟件包下載到磁盤上。

你能幫忙嗎?

回答

7

您可以在項目中看到aerospike/aerospike-client-go測試,如example_listiter_int_test.go其中:

  • 進口項目用:

    as "github.com/aerospike/aerospike-client-go" 
    
  • 使用NewClient用正確的前綴:

    var v as.Value = as.NewValue(myListInt([]int{1, 2, 3})) 
    

所以不要忘記以NewClient爲前綴。

你的情況:

import (
as "github.com/aerospike/aerospike-client-go" 
"fmt" 
) 

和:

client, err := as.NewClient("127.0.0.1", 3000) 

as是軟件包名稱的別名,因爲在 「Call a function from another package in Go」 中提到:

You import the package by its import path, and reference all its exported symbols (those starting with a capital letter) through the package name,

由於package aerospikeNewClient is in client.go,替代方案是:

client, err := aerospike.NewClient("127.0.0.1", 3000) 
+0

現在我得到了:panic:找不到命名空間 – user8215502

+0

@ user8215502在編譯或執行過程中?如果是在執行過程中,那麼原始問題已解決,並且您需要在執行期間閱讀https://stackoverflow.com/help/accepted-answer – VonC

+0

。我想這與政策有關 – user8215502