45 lines
1.5 KiB
Markdown
45 lines
1.5 KiB
Markdown
|
|
# Hello world程序
|
||
|
|
|
||
|
|
## 编译型语言
|
||
|
|
|
||
|
|
+ Shell/Powershell: 脚本(缺少数据结构, 用于命令组装)
|
||
|
|
+ 动态解释型语言: 写好的代码 -> 解释器 -> 运行结果: python, javascript, php, ruby, lua, perl
|
||
|
|
+ 静态带大运行时语言: 写好的代码 -> 静态编译器 -> 可执行文件(中介产物) -> 大运行时(JVM, .NET) -> 运行结果
|
||
|
|
+ 静态编译型语言: 写好的代码 -> 编译器 -> 可执行文件 -> 运行结果: C, C++, Go, Rust
|
||
|
|
|
||
|
|
|
||
|
|
Go: 静态编译型语言
|
||
|
|
|
||
|
|
## 创建一个hello world程序
|
||
|
|
|
||
|
|
写好的代码 -> 编译器 -> 可执行文件 -> 运行结果
|
||
|
|
|
||
|
|
代码
|
||
|
|
```go
|
||
|
|
package main
|
||
|
|
|
||
|
|
func main() {
|
||
|
|
println("Hello, World!")
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
解读:
|
||
|
|
+ package: Go源文件开头必须使用 package 声明代码所属包,包是 Go 代码分发的最基本单位。若程序需要运行包名必须为 main。
|
||
|
|
+ import: 用于导入程序依赖的所有的包。此程序依赖于 fmt 包。
|
||
|
|
+ func: 用于定义函数。main 函数是程序的入口,若程序需要运行必须声明 main 函数,main
|
||
|
|
函数无参数也无返回值
|
||
|
|
+ fmt.Println 调用 fmt.Println 函数将参数信息打印到控制台
|
||
|
|
|
||
|
|
编译执行:
|
||
|
|
```bash
|
||
|
|
➜ go20 git:(main) ✗ go build ./day01/hello_world/main.go
|
||
|
|
➜ go20 git:(main) ✗ ./main
|
||
|
|
Hello, World!
|
||
|
|
```
|
||
|
|
|
||
|
|
## 程序入口(main.go)
|
||
|
|
|
||
|
|
main.go: 程序入口 (package main, func main())
|
||
|
|
|
||
|
|
+ 脚步程序: 单main.go 文件, 非工程模式,不依赖任何项目结构(静态编译型语言)
|
||
|
|
+ 工程模式: 多个go 文件, 静态编译型语言
|