GO入门——Hello, World

目录文件

先创建目录结构golang-project/src/go-core/main以及go的代码文件main.go

代码

go 复制代码
package main
import "fmt"
func main() {
	fmt.Println("Hello, World!")
}
  1. package main:
    • 在 Go 语言里,package 声明用于指定当前文件所属的包。package main 表明这是一个可执行程序的包,每个可执行的 Go 程序都必须有一个main包。
  1. import "fmt":
    • import 关键字用于导入外部包。这里导入了标准库中的 fmt 包,该包提供了格式化输入输出的功能,像 Println 这类函数就包含在其中。
  1. func main():
    • func 是定义函数的关键字,main 是函数名。在 Go 语言中,main 函数是程序的入口点,当运行这个可执行程序时,会自动从 main 函数开始执行。此函数没有参数和返回值。
  1. fmt.Println("Hello, World!"):
    • 调用 fmt 包里的 Println 函数,该函数的作用是在控制台打印传入的字符串 "Hello, World!",并在末尾添加一个换行符。

编译执行

方式一

针对.go文件,执行

go 复制代码
go run main.go

输出结果,成功运行

方式二

先编译文件,执行命令

go 复制代码
 go build main.go

执行后生成一个可执行文件,最开始目录里面的main文件

然后执行该可执行文件, mac下运行

bash 复制代码
./main

执行结果如图

go run和go build

go run 和 go build 都用于处理程序的编译和运行,对比如下:

对比

go run
  • 功能 :直接编译并运行 Go 程序,无需手动生成可执行文件。
  • 执行过程:
    1. 编译源代码(包括依赖包),生成临时可执行文件。
    2. 运行临时可执行文件。
    3. 执行完毕后,自动删除临时文件,不保留可执行文件。
  • 适用场景:
    • 开发阶段快速测试代码(无需手动编译,一步到位)。
    • 运行单个 .go 文件(如脚本类程序)。
go build
  • 功能 :编译 Go 程序,生成可执行文件 (二进制文件),不自动运行。
  • 执行过程:
    1. 编译源代码及依赖包,生成目标平台的可执行文件。
    2. 将可执行文件保存在当前目录(或通过 -o 指定路径)。
  • 适用场景:
    • 生成最终可部署的二进制文件(如发布到生产环境)。
    • 需要多次运行程序时(避免重复编译,直接执行生成的二进制文件更高效)。

总结

  • 开发阶段 :用 go run 快速验证代码(无需手动处理编译产物)。
  • 发布阶段 :用 go build 生成可执行文件,便于部署和分发(尤其是跨平台场景)。

补充

go build编译后生成与包名同名的可执行文件, 可通过 -o 选项自定义输出文件名和路径

bash 复制代码
go build -o myapp       # 生成名为 myapp 的可执行文件
go build -o ./bin/app   # 生成到指定目录
相关推荐
步行cgn7 小时前
Spring 全注解开发详解
java·后端·spring
IT_陈寒10 小时前
SpringBoot启动慢得像蜗牛?原来是这个配置在捣鬼
前端·人工智能·后端
不才不才不不才12 小时前
Spring 源码系列(29): 20 道高频面试题源码级解析合集
java·后端·spring
索隆zoro12 小时前
Army 的可插拔架构:army-jdbc 与方言模块
java·后端
小蒜学长12 小时前
校园社团招新网站的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·校园社团招新网站
蜗牛互联网14 小时前
从Barclays扩大Claude部署看受监管软件工程的责任重分配
java·大数据·人工智能·后端·软件工程
周杰伦fans15 小时前
C#对话摘要降低Token消耗
人工智能·后端·c#
做系统的大强15 小时前
脚本说 PASS、OS 读全零 —— 到底是谁在撒谎?
后端·操作系统
code2cat16 小时前
【随笔】MCP资源更新订阅:通知到达以后,Agent怎样刷新旧资料
java·后端·开发工具·ai agent·mcp
福兮说17 小时前
Go slices 包的七个坑:Delete 把旧切片清零、Insert 时而写穿、SortFunc 不稳定(Go 1.25 实跑)
go