预期声明,发现' IDENT'项目

时间:2015-03-09 12:09:39

标签: google-app-engine go memcached

我正在使用Memcache Go API编写一个小代码来获取存储在其中一个键中的数据。以下是我使用的几行代码(得到Go app-engine docs的代码)

import "appengine/memcache"

item := &memcache.Item {
Key:   "lyric",
Value: []byte("Oh, give me a home"),
}

但是第2行给了我一个编译错误 "期望的声明,发现' IDENT'项"

我是Go的新手,无法找出问题

3 个答案:

答案 0 :(得分:30)

:= Short variable declaration只能在函数内部使用。

所以要么将item变量声明放在像这样的函数中:

import "appengine/memcache"

func MyFunc() {
    item := &memcache.Item {
        Key:   "lyric",
        Value: []byte("Oh, give me a home"),
    }
    // do something with item
}

或者将其设为全局变量并使用var关键字:

import "appengine/memcache"

var item = &memcache.Item {
    Key:   "lyric",
    Value: []byte("Oh, give me a home"),
}

答案 1 :(得分:0)

我遇到了同样的错误,但原因完全不同。

我使用了以下包名。

package go-example

好像不是一个有效的包名。删除连字符后,它起作用了。

答案 2 :(得分:0)

为名称为关键字的变量赋值时也会出现此错误 就像使用 var:= 2 这也会导致错误“预期声明,发现‘IDENT’项目” 所以改正名字就好了