我无法使用package main在不同包中定义的结构。请注意,我正在正确导入其他包我以大写字母开头命名结构及其字段,因为我在 Golang 中读到,这就是我们指示它是导出字段的方式。尽管如果包是导入的则不需要。fsm.gopackage fsmimport ("fmt""strings" )// EKey is a struct key used for storing the transition map.type EKey struct {// event is the name of the event that the keys refers to.Event string// src is the source from where the event can transition.Src string}测试.gopackage mainimport ("encoding/json""fmt""github.com/looplab/fsm") func main(){ Transitions := make(map[EKey]string) }Error: undefined EKey
3 回答
qq_笑_17
TA贡献1818条经验 获得超7个赞
您必须首先导入要引用其标识符的包:
import "path/to/fsm"
执行此操作后,包名称将成为文件块fsm
中的新标识符,您可以使用限定标识符引用其导出的标识符(以大写字母开头的标识符),如下所示:packagename.IdentifierName
Transitions := make(map[fsm.EKey]string)
慕码人8056858
TA贡献1803条经验 获得超6个赞
您需要使用来引用您的结构fsm.EKey
如果要将其导入本地名称空间,则需要在导入路径前加一个点。
import (
// ....
. "github.com/looplab/fsm"
)
现在您可以直接将您的结构称为EKey
不负相思意
TA贡献1777条经验 获得超10个赞
尝试这个
package main
import (
"encoding/json"
"fmt"
"github.com/looplab/fsm"
)
func main(){
Transitions := make(map[fsm.EKey]string)
}
- 3 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消