gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:50:19 24 4
gpt4 key购买 nike

我想在包 models 中定义我的错误代码

error.go

package models

const{
EOK = iota
EFAILED
}

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

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

最佳答案

回答你的核心问题

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

import . "models"

这样您就可以直接引用 EOK 常量而无需使用 models 前缀。

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

一般/风格建议

  1. 不要使用像 models 这样没有前缀的导出路径。这被认为是糟糕的风格,因为它很容易流口水。即使对于仅在内部使用的小型项目,也可以使用类似 myname/models 的内容。见goblog
  2. 关于您关于错误生成的问题,有生成错误值的函数,例如errors.New ( godoc ) 和 fmt.Errorf ( godoc )。有关 go 和错误处理的一般介绍,请参阅 goblog

关于go - 创建跨包可见的常量,可直接访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34243560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com