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

同一包中的功能未定义

陈宏胜
2023-03-14
问题内容

我的项目结构是这样的。

packagetest/
    main.go
    lib.go

在中main.go,我有此代码。

package main

import "fmt"

func main() {
    fmt.Println("Hello from main.go.")
    Test()
}

在中时lib.go,我有此代码。

package main

import "fmt"

func Test() {
    fmt.Println("This is the Test function in lib.go.")
}

当我尝试进行编译时go build main.go,我得到了./main.go:7: undefined: Test。这种构造代码的方式可行吗?


问题答案:

尝试只运行go build。当给它一个go文件作为参数时,它将不会寻找其他go文件。你也可以go build *.go



 类似资料:
  • 问题内容: 使用我正在尝试在模板中使用自己的功能之一。不幸的是,我无法使用go模板的功能映射功能。我得到的只是以下错误: 简化的测试用例如下所示(): 我有以下简单模板(): 这是1.1.1。 问题答案: IIRC,必须在解析模板之前定义模板功能图。下面的代码似乎有效。

  • 问题内容: 我正在尝试编写一个基本的go程序,该程序在另一个文件上调用函数,但该文件是同一包的一部分。但是,它返回: 这是源代码: : : 问题答案: 请阅读“如何编写Go代码”。 不要在您的中使用。软件包位于中。 对于或您需要将文件放在包目录中。 对于,您需要提供所有文件作为参数: 但是,您几乎应该始终使用或或(最好是使用前者,因为使用非主软件包时会引起混乱)

  • 问题内容: 在python中,一个玩具示例: 如果函数A通过跳过它花费了5秒以上的时间,我想继续for循环,这样我就不会卡住或浪费时间。 通过进行一些搜索,我意识到子进程或线程可能会有所帮助,但是我不知道如何在此处实现。任何帮助都会很棒。谢谢 问题答案: 我认为创建一个新的流程可能是过大的。如果您使用的是Mac或基于Unix的系统,则应该能够使用signal.SIGALRM来强制使时间过长的功能超

  • 问题内容: 采用以下协议和扩展名: 这与将函数完全排除在协议定义之外有什么区别(例如): 我发现了一个区别。如果我定义了一个覆盖默认实现的结构,则仅当将函数放在定义之外时,我才能将其强制转换为协议并调用协议的实现: 换句话说,如果您像in中那样 从协议定义中删除 函数,则可以通过将对象强制转换为协议来访问默认实现。另一方面,如果将函数保留在协议定义中,则无法转换为协议以获取默认协议行为。 将功能定

  • 我一直试图在Twilio Studio流中使用SMS转发创建一个双向对话。我知道在Twilio中设置短信转发有多种方法,我已经成功地使用了它们自己的功能、TwiML和发送消息小部件上的Studio Flow SMS。然而,我正在努力创建一个扩展到一个消息之外的流。我已经在我的流程中添加了短信转发功能,但每次收到响应时,它都显示为“undefined:undefined”,而不是“+15555555

  • 问题内容: 我在Ubuntu 11.04上编写了一个使用freeglut的程序。工作正常。然后,我得到了另一台计算机,并尝试在全新安装的Ubuntu 11.04上运行该程序。不起作用 所以我安装了 1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev mesa-common-dev gcc` 并尝试运行该程序,该程序会导入 使用命令 但是,链接器或类似内容会弹出20