登录
首页 >  Golang >  Go问答

go build 和 go run 函数调用的区别

来源:stackoverflow

时间:2024-04-25 21:48:38 332浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《go build 和 go run 函数调用的区别》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我是 golang 新手,我正在尝试一些示例作为学习的一部分。我有 2 个 go 源文件 - 在我的示例中是 hello.go 和 consts.go。 consts.go 包含一些由 hello.go 中定义的函数使用的常量。当我像这样构建两个源文件时: go build consts.go hello.go 并运行输出 ./hello 函数 arraydemo() 根本没有被调用。

但是,当我使用 go run hello.go 运行文件 hello.go 时,会调用函数 arraydemo()。

这两种方法有什么区别导致构建时不调用该函数?

这是 hello.go 的代码:

package main

import (
    "fmt"
    "os"
    "strconv"
    "strings"
)

func main() {
    fmt.printf("speed is %f\n", computespeed(54.3, 3.4))
    fmt.printf("%d\n", arraydemo())
}

func arraydemo() int32 {
    fmt.println("in arraydemo")
    return 5
}

consts.go 代码:

package main

// Speed speed of a vehicle
type Speed float32

func computeSpeed(dist float32, t float32) Speed {
    return Speed(dist / t)
}

解决方案


go run 可以工作,因为 go run 根据文件名工作,而 go build 根据包名称工作。

还有

go help build says:

据我了解,这意味着您不能在主包中包含多个文件,然后使用 go build 获取工作可执行文件

以上就是《go build 和 go run 函数调用的区别》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>