20210216关于包名与调用名(这标题不能准确表达我在说什么) - ziyouzy/2021blog GitHub Wiki

还是标题有些不能准确表达我在说什么,上例子吧

package stamps

import (
"river-node"
//"river-node/define"	/*暂时没有需要返回给上层的signal内容*/
"river-node/logger"

"bytes"
"reflect"
"errors"
)

"river-node"是包引用的方法,他的本质是文件路径 也即是说,无论是golang的import还是go.mod的module river-node所代表的都是路径的输入,于是都是“river—node”而不是river-node,“”代表着属于在书写一个路径

而诸如之后的具体使用,如:

func TestNodes(t *testing.T) {
    heartBeatingAbsf := river_node.Nodes[heartbeating.RIVER_NODE_NAME]
    stampsAbsf := river_node.Nodes[stamps.RIVER_NODE_NAME]
    crcAbsf := river_node.Nodes[crc.RIVER_NODE_NAME]
}

则使用的是之前所import目录下(只是这个根目录,不包含其二级目录),各个.go文件都会设计统一的包名(package XXX)
当真正在自己的代码调用某个组建的时候使用的是包名而不是路径名
同时报名和路径名是可以设计的不一致的,这没有什么硬性或软性的规定