当前位置: 首页 > 面试题库 >

是否可以不指定软件包名称?

郎永福
2023-03-14
问题内容

这是我的代码示例:

package main

import (
  "./bio"
)

func main() {
   bio.PeptideEncoding(genome, codonTable)
}

是否可以使用我的paxkage(bio)中的函数而无需指定包名称:

func main() {
   PeptideEncoding(genome, codonTable)
}


问题答案:

您可以将其用作导入声明,例如:

. "./bio"

如果出现显式的句号(.)而不是名称,则在该软件包的package块中声明的所有软件包导出的标识符都将在导入源文件的file块中声明,并且
必须在不使用限定符的情况下进行访问

这就是像govey这样的测试框架所做的:

package package_name

import (
    "testing"
    . "github.com/smartystreets/goconvey/convey"
)

func TestIntegerStuff(t *testing.T) {
    Convey("Given some integer with a starting value", t, func() {
        x := 1

        Convey("When the integer is incremented", func() {
            x++

            Convey("The value should be greater by one", func() {
                So(x, ShouldEqual, 2)
            })
        })
    })
}

您不需要使用convey.So(),或者convey.Convey()由于导入以’开头.

但是请不要滥用它,因为正如twotwotwo注释那样 在测试之外不鼓励使用它。

除这种情况外,请勿import .在程序中使用。
由于不清楚Quux之类的名称是否是当前包或导入包中的顶级标识符,因此使程序更难阅读。

这就是为什么我提到了使用这种技术的 测试 框架。

正如Simon Whitehead所评论的那样,通常不认为使用 相对导入
是最佳实践(例如,参见“ Go语言包结构



 类似资料:
  • 我想知道,在谷歌Play上更改Android应用程序的实际软件包名称在技术上是否可行,而不是简单与否。我所说的包名是将显示在URL中的名称。请问,谁能告诉我为什么这是/不可能的?谢谢

  • 我需要从我的中生成一个文件,但我希望避免创建。有可能吗?

  • 问题内容: 我使用VIRTUALENV与我的发展环境与利润,以及其他面向Web的包。 我将使用Qt开发一个简单的python客户端,以重复使用web.py开发的一些Api。 这里有人成功用Virtualenv安装了PyQt4吗? 可能吗? 我已经下载了所有二进制文件,并已全局安装在python2.6目录中。 如果我不使用该选项,Virtualenv会正确地包含在我的新沙箱中,但是显然会包含我不需要

  • 在我们的项目(java/spring/gradle stack)中,我们使用的是openApi规范。我们为他们提供了一些服务和规格。此外,我们在每个规范中都有重复的公共模块。我们将这些公共模块移动到一个单独的规范文件中,并将其包含在其他规范中。例如: 规范yaml有下一个代码: 和公共_模块。yaml下一个: 因此,我们需要用包名com生成spec.yaml。具体的项目1,

  • 问题内容: 我如何检查Java安装中是否存在像javax.servlet。*这样的包? 问题答案: Java只能告诉您是否可以加载类。它不能告诉您是否存在软件包,因为没有加载软件包,只有类。 唯一的方法是尝试从该包中加载类。例如,对于javax.servlet。*,您可以执行以下操作:

  • 问题内容: 有没有一种方法可以为Python创建一个程序,并指定应在系统范围的安装中使用(继承) 哪些软件包,以及在系统范围的安装中应忽略哪些软件包? 更具体地说,例如,说在 系统 范围内安装了: 我想创建一个虚拟环境,例如: 使用系统范围内的安装和 忽略 系统范围的,让我 安装/升级自己的版本 (带有)。 这可能吗? 问题答案: 最简单的方法是创建一个包含系统站点程序包的virtualenv,然