当前位置:  开发笔记 > 编程语言 > 正文

创建跨包可见的常量,可直接访问

如何解决《创建跨包可见的常量,可直接访问》经验,为你挑选了1个好方法。

我想Error Codes在一个包中定义我的models.

error.go

package models

const{
  EOK = iota
  EFAILED
}

我怎么能在另一个包中使用它们而不用它们作为models.EOK.我想直接使用EOK,因为这些代码在所有包中都是通用的.

这是正确的方法吗?有更好的选择吗?



1> tike..:

回答你的核心问题

您可以使用dot导入语法将导出的符号从另一个包直接导入到包的名称空间(godoc)中:

import . "models"

这样你就可以直接引用EOK常量而不用前缀models.

但是我强烈建议不要这样做,因为它会生成相当难以理解的代码.见下文

一般/风格的建议

    不要使用像这样的无前缀的导出路径models.这被认为是糟糕的风格,因为它很容易被打造.即使对于仅在内部使用的小型项目,也可以使用类似的东西myname/models.看到goblog

    关于错误生成的问题,有生成error值的函数,例如errors.New(godoc)和fmt.Errorf(godoc).有关go和错误处理的一般介绍,请参阅goblog

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有