GO学习笔记——编译与运行

一、Golang的执行流程——两种执行流程

1、go build运行

终端打开.go文件所在目录,在命令行输入go build xxx.go,如果没有编译错误,将会在相同目录下生成一个可执行的.exe文件,然后在命令行运行这个exe文件即可。

以下为一个演示示例,仅供参考。在编译执行编译后,用dir查看发现当前文件夹下多了一个exe文件,运行这个exe文件即可看到终端输出了“Hello world!”。

>go build helloworld.go

>dir

helloworld.go

helloworld.exe

>helloworld.exe

Hello world!

2、go run运行

终端打开.go文件所在目录,在命令行输入go run xxx.go,如果没有编译错误,会在终端直接编译并执行go文件,但不会生成.exe文件。

以下为一个演示示例,仅供参考。发现直接运行go run xxx.go后,直接输出了“Hello world!”。用dir查看 目录下并没有exe文件。

>go run helloworld.go

Hello world!

>dir

helloworld.go

二、两种运行方式的区别——可执行文件exe的生成

首先,我们可以明显的感受到二者的不同,就在于可执行文件exe是否有生成。

go build的好处是,一旦编译完成,你可以多次运行得到相同的二进制文件,而不需要重新编译。这对于大型项目或者需要频繁运行的项目来说,可以提高运行效率。

go run更加适合一次性运行的简单程序或脚本,适合用于单元开发测试。

一般而言,先build生成exe文件不仅是一种良好的编程习惯,也避免了每次运行都需要重新编译的开销,尽管run本质也是在底层先运行了编译程序,然后再执行文件,但显然对于需要重复执行的文件,反复编译的过程增大了开销。

另外,go build在编译时会将程序运行依赖的库文件包含在可执行文件中,尽管这会使得可执行文件在空间上大了许多,但这也减少了反复运行时的开销,并且当该可执行文件被拷贝到另一个没有该库文件或者go环境的机器上时,也能够运行,而go run的运行需要有go的开发环境。

三、一些编译时的注意与说明

1、编译器可以将go源文件编译成机器可以识别的二进制码文件

2、在源文件目录下可以用go build 对.go文件进行编译,并且可以指定可执行文件的名字,但在windows下必须以.exe后缀来命名可执行文件,示例如下。

>go build -o hello.exe helloworld.go

 3、如果程序没有编译错误,则go build会在当前目录下生成一个可执行文件;若有错误,编译时会报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
连续系统的时域分析是信号与系统学习中的重要部分。时域分析研究的是信号在时间域内的变化规律,常用的分析方法包括冲激响应法、单位阶跃响应法和相应方程法。 1. 冲激响应法 冲激响应法是一种基于系统输入信号的冲激函数的响应来分析系统时域特性的方法。具体来说,将系统输入信号表示为一个冲激序列的加权和,然后计算出系统对每个冲激的响应,得到系统的冲激响应函数。然后,通过线性时不变系统的特性,可以将任何输入信号都表示为冲激序列的加权和,从而得到系统对任何输入信号的响应。 2. 单位阶跃响应法 单位阶跃响应法是一种基于系统输入信号的单位阶跃函数的响应来分析系统时域特性的方法。具体来说,将系统输入信号表示为一个单位阶跃函数的加权和,然后计算出系统对每个单位阶跃函数的响应,得到系统的单位阶跃响应函数。然后,通过线性时不变系统的特性,可以将任何输入信号都表示为单位阶跃函数的加权和,从而得到系统对任何输入信号的响应。 3. 相应方程法 相应方程法是一种基于系统微分方程的解析解来分析系统时域特性的方法。具体来说,根据系统微分方程的特性,可以得到系统的传递函数,然后通过拉普拉斯变换将输入信号和传递函数变换到频域内,最终通过反变换得到系统的时域响应。 以上三种方法都是分析连续系统时域特性的重要方法,各自适用于不同的情况。掌握这些方法可以帮助我们更好地理解和分析连续系统的时域特性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值