我在玩谷歌Go,玩得很开心(!),但我在软件包子系统方面遇到了一些问题.

我在Mac OS X Lion上运行Go 1.0.1.我还构建了各种单文件程序,没有任何问题(我还构建了一个使用html/模板的小webapp,没有任何问题,并且编译和运行时没有任何错误).

我定义了一个"可重用"包(even.go):

package even

func Even(i int) bool {
    return i % 2 == 0
}

func Odd(i int) bool {
    return i % 2 == 1
}

和消费者程序(useeven.go):

package main

import (
    "./even"
    "fmt"
)

func main() {
    a := 5
    b := 6

    fmt.Printf("%d is even %v?\n", a, even.Even(a))
    fmt.Printf("%d is odd %v?\n", b, even.Odd(b))
}

但是当我使用以下命令编译"库"时

go build even.go

我什么都没有...没有错误,没有消息...会发生什么事?

我该怎么做呢?

推荐答案

你的问题的答案是,"我应该怎么做?"这是非常重要的东西,值得一看.

go build的行为可能看起来令人费解,但实际上对于命令行程序来说是常规的--没有输出意味着程序运行成功.那么它做了什么呢?所以你的答案是go help build

...否则Build编译包但丢弃结果, 只起到判断软件包是否可以构建的作用.

什么,你想要更多?当然"如何编写Go代码"解释了这样做的好方法.为了快速修复您的程序,我将解释go命令希望每个包和每个可执行程序都位于单独的目录中.如果你只是创建一个名为偶数的目录,就在useeven的位置下.走吧,保持平衡.go 吧,然后go run useeven.go应该像你现在这样跑.

Go相关问答推荐

Go Net/http路由

为什么我不能使用Docker从本地访问我的Gin应用程序?

如何在jsonrpc服务器的服务器端捕获错误?

重新赋值变量时未清除动态类型-这是错误吗?

Prometheus 摘要分位数错误

nixOS 上的 Nginx 反向代理在try 加载 css/js 时返回 404

带有前导零的整数参数被 flag.IntVar 解析为八进制

Secrets Manager Update Secret - Secret String 额外的 JSON 编码

无法从主域访问子域:无Access-Control-Allow-Origin

如何将 base64 编码的公钥转换为 crypto.PublicKey 或 ecdsa.PublicKey

如何为导入的嵌入式 struct 文字提供值?

如何将文件上传到 Google Drive,并与使用服务帐户和 Golang 的任何人共享

如何将具有嵌入式 struct 的 struct 展平为 json

在 Go 中发送 ack 和 term 后消息仍在 nats 限制队列中

在删除级联时无法在 Gorm 中按预期工作

同时调用应该只获取一次数据

GRPC 反向代理混淆 GRPC 和 GRPC-Web

关于GO的几个问题

Go 错误:cannot use generic type without instantiation

Go 错误处理、类型断言和 net package包