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

在同一目录中有两个软件包是否有意义?

白淇
2023-03-14
问题内容

我有一个提供库的项目(导出一些函数),还必须提供命令行界面(必须有一个可执行文件)。

目录结构示例:

whatever.io/
    myproject/
        main.go
        myproject.go

go编译器需要 包mainfunc main 才能开始执行。我的图书馆需要在上面放东西的 包myproject
。这是我在构建另一个试图导入myproject的项目时go工具所说的:

main.go:5:2: found packages myproject (myproject.go) and main (main.go) in $GOPATH/src/whatever.io/myproject

因此,我相信没有办法。

我应该将库或CLI移至另一个软件包吗?


问题答案:

只需将软件包移动到main.go相同目录中的新文件夹中即可。记住要从$ GOPATH的引用中导入新包。

例:

user@user:~/p/go/test/so-multipack$ ls -R
.:
a  main.go

./a:
a.go
user@user:~/p/go/test/so-multipack$ cat main.go 
package main

import (
    "../so-multipack/a"
)
func main(){
    a.Hello()
}
user@user:~/p/go/test/so-multipack$ cat a/a.go 
package a
import (
    "fmt"
)
func Hello(){
    fmt.Println("hello from a")
}
user@user:~/p/go/test/so-multipack$ go run main.go 
hello from a
user@user:~/p/go/test/so-multipack$ go build 
user@user:~/p/go/test/so-multipack$ ls
a  main.go  so-multipack
user@user:~/p/go/test/so-multipack$


 类似资料:
  • 我正在为一个框架编写一个构建系统,它可以由用户(开发人员)通过插件进行扩展。我的问题是,我不能包括所有的aar文件与掩码。例如,我可以包含所有jar文件,如下所示:

  • 问题内容: 在Python中查看两个文件在内容方面是否相同的最简单方法是什么。 我可以做的一件事是对每个文件md5进行比较。有没有更好的办法? 问题答案: 是的,我认为如果必须比较多个文件并存储哈希以供以后比较,则对文件进行哈希处理将是最好的方法。由于哈希可能会发生冲突,因此可能会根据用例进行逐字节比较。 通常,逐字节比较将是足够且高效的,哪个filecmp模块也已经执行了其他操作。 参见http

  • 问题内容: 我正在做一个大项目,该项目很可能最终包含成千上万行代码,对于当前结构,我喜欢这样: 这样做的问题是controllers和models目录包含很多文件,全部使用和。因此,我正在考虑将其拆分为: 凡在控制器包的用户文件中可能包含的文件,等等。 现在,我读到像或那样的软件包是不好的做法,但是我担心对这两个软件包进行命名可能不是一个好主意,因为它们是同一项目的一部分(即使它们位于不同的目录中

  • 问题内容: 用PHP在一个目录中列出所有文件的最佳方法是什么?是否有$ _SERVER函数可以执行此操作?我想列出usernames /目录中的所有文件,并通过链接遍历该结果,以便我可以单击文件名的超链接到达那里。谢谢! 问题答案: 检查一下:readdir() 此代码段应列出某个目录中的所有条目: 编辑 :miah的解决方案比我的解决方案优雅得多,您应该改用他的解决方案。

  • 问题内容: 我运行foo.com。我在foo.com中有两个不同的应用程序:一个是foo.com/bar,另一个是foo.com/example。我使用会话来跟踪有关用户登录的信息,但是如果用户从foo.com/bar转到foo.com/example,则foo.com/example会看到用户从foo.com/启动的会话并使用该信息。我的问题是,如何同时为每个目录进行两个不同的会话? 问题答案:

  • 如何检查一个给定的文件是否在另一个文件下?例如,我有< code>new Paths.get("/foo/bar/" 和< code > new paths . get("。/abc/def.jar")。我想检查第二个是否在< code>/foo/bar下。 我可以找出一些基于字符串的比较,比如< code>path.toFile()。getAbsolutePath()。startsWith(pa