go build 和 go run 是 Go 语言中两个常用的命令,它们的主要区别在于编译和执行的过程。

1.go run

go run 命令用于编译并运行 Go 程序。它将源代码直接编译成可执行文件,并立即运行该文件。这个命令非常适合用于快速测试和运行小规模的代码片段。

使用 go run 命令时,不需要将源代码保存为 .go 文件,可以直接在终端中输入源代码,并使用 go run 命令执行。

例:

go run main.go

在这个例子中,假设源代码保存在名为 main.go 的文件中,go run 命令将直接编译并运行该文件

2.go build

go build 命令用于编译 Go 程序,但不立即运行。它将源代码编译成可执行文件,但不会立即执行该文件。

相反,它会在当前目录下生成一个可执行文件,但不会自动运行。你可以手动运行该文件,或者通过其他方式(例如在终端中输入可执行文件的名称)来运行它。

例:

go build main.go

在这个例子中,假设源代码保存在名为 main.go 的文件中,go build 命令将编译该文件,并在当前目录下生成一个可执行文件。要运行该文件,可以在终端中输入可执行文件的名称(例如 ./main)

3.总结

go run 命令适用于快速测试和运行小规模的代码片段,因为它将直接编译并运行源代码。

而 go build 命令适用于需要生成可执行文件的情况,它只编译源代码而不立即运行。你可以在生成的可执行文件上使用其他命令来手动运行它

go build 跟 go run 的区别的更多相关文章

  1. Java多线程系列--“基础篇”03之 Thread中start()和run()的区别

    概要 Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答.本章内容包括:start() 和 run()的区别说明start() 和 run()的区别示例start( ...

  2. java多线程系类:基础篇:03Thread中的start()和run()的区别

    这个系类的内容全部来源于http://www.cnblogs.com/skywang12345/p/3479024.html.特别在此声明!!! 概要 Thread类包含start()和run()方法 ...

  3. 线程入门之start()和run()的区别

    package com.thread; /** * start()和run()的区别 * start():并行执行 * run():方法调用,顺序执行 * @author 95Yang */ publ ...

  4. Java多线程3:Thread中start()和run()的区别

    原文:http://www.cnblogs.com/skywang12345/p/3479083.html start() 和 run()的区别说明start():它的作用是启动一个新线程,新线程会执 ...

  5. 转:eclipse maven build、maven install 等区别

    原文地址:eclipse maven build.maven install 等区别

  6. Java基础加强之并发(三)Thread中start()和run()的区别

    Thread中start()和run()的区别 start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法.start()不能被重复调用.run()   : run()就和普通的成 ...

  7. java 多线程系列基础篇(三)之start()和run()的区别

    概要 Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答. start() 和 run()的区别说明 start() : 它的作用是启动一个新线程,新线程会执行相应 ...

  8. Java多线程和并发(二),Thread中的start和run的区别

    目录 1.调用run方法 2.调用start方法 3.start和run的区别 二.Thread中的start和run的区别 1.调用run方法 public class ThreadTest { p ...

  9. Kotlin之let,apply,with,run函数区别(转)

    转自:https://blog.csdn.net/guijiaoba/article/details/54615036 Kotlin之let,apply,with,run函数区别 重新整理 重新整理了 ...

  10. sleep()和wait()的区别?notify()和notifyAll()的区别?start()和run()的区别?

    sleep()和wait()的区别? 这两个方法来自不同的类分别是Thread和Object sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法.wait,not ...

随机推荐

  1. 使用Jenkins构建镜像:将应用打包成镜像

    学习某册子的CICD,记录使用Jenkins构建镜像的过程. 使用Jenkins集成Git来构建Docker镜像,为后面的部署准备镜像资源. 1. 安装Nodejs环境 如果想要安装Node环境,有以 ...

  2. 吉特日化MES & HttpClient基础连接已经关闭: 连接被意外关闭

    在吉特日化MES调用某公司AGV平台下发任务的时候,使用HttpClient 进行POST请求,出现如下异常: HttpClient基础连接已经关闭: 连接被意外关闭  , 之前已经使用HTTPCli ...

  3. vue-test4 -----插槽

    <template> <!-- <Main class="cccc"/> <component-a/> --> <slot-d ...

  4. viewPager2页面的切换

    使用流程:   1.定义ViewPager   2.为ViewPager创建Adapter ViewPagerAdapter package com.example.viewpagerandfragm ...

  5. hdu4365 Palindrome graph

    Palindrome graph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  6. 关于`dial unix /var/run/docker.sock: connect: permission denied`的处理方法笔记

    之前遇到的一个问题,使用非root用户时操作docker提示无权限,在查阅了一些文章之后自己又摸索出了一些更方便的方法,顺手记录下来. 一.问题发现 根据报错信息dial unix /var/run/ ...

  7. 数字孪生结合GIS能给物流行业带来怎样的改变

    随着科技的不断发展和创新,数字孪生技术和地理信息系统(GIS)正日益在各个行业中发挥重要作用.其中,物流行业作为一个复杂而庞大的系统,也能从数字孪生和GIS的结合中获得许多益处和改变. 数字孪生是指通 ...

  8. 三维GIS引擎用什么好?结合目前市面上的主流引擎进行分析

    相信大多数人在谈到三维GIS引擎时,第一个想到的首先是CesiumJS,CesiumJS以其免费开源的特点,快速占领了三维GIS这个领域,同时也催生了许多以CesiumJS为基础的衍生产品.Cesiu ...

  9. 深度解析 PyTorch Autograd:从原理到实践

    本文深入探讨了 PyTorch 中 Autograd 的核心原理和功能.从基本概念.Tensor 与 Autograd 的交互,到计算图的构建和管理,再到反向传播和梯度计算的细节,最后涵盖了 Auto ...

  10. 【K8S系列】如何高效查看 k8s日志

    序言 你只管努力,其他交给时间,时间会证明一切. 文章标记颜色说明: 黄色:重要标题 红色:用来标记结论 绿色:用来标记一级论点 蓝色:用来标记二级论点 Kubernetes (k8s) 是一个容器编 ...