Go学习笔记-Hello World

Go语言的Hello World程序非常简洁,展现了Go语言简单易学的特点。Go程序从main包的main函数开始执行。

基本的Hello World

1
2
3
4
5
6
7
package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

程序结构解析

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
// 每个Go程序都必须属于一个包
package main

// 导入标准库中的fmt包,用于格式化输出
import "fmt"

// main函数是程序的入口点
func main() {
    // 使用fmt.Println输出文本到控制台
    fmt.Println("Hello, World!")
    
    // 其他输出方式
    fmt.Print("Hello, ")
    fmt.Print("Go!\n")
    
    // 格式化输出
    name := "Gopher"
    fmt.Printf("Hello, %s!\n", name)
}

多种输出方式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package main

import "fmt"

func main() {
    // 1. Println - 输出后自动换行
    fmt.Println("这是第一行")
    fmt.Println("这是第二行")
    
    // 2. Print - 输出后不换行
    fmt.Print("Hello ")
    fmt.Print("World")
    fmt.Print("\n") // 手动换行
    
    // 3. Printf - 格式化输出
    name := "张三"
    age := 25
    fmt.Printf("姓名: %s, 年龄: %d\n", name, age)
    
    // 4. 多个值一起输出
    fmt.Println("姓名:", name, "年龄:", age)
    
    // 5. 使用占位符
    fmt.Printf("我的名字是%s,今年%d岁\n", name, age)
}

包和导入

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main

// 单个导入
import "fmt"

// 或者多个导入(推荐方式)
import (
    "fmt"
    "os"
    "time"
)

func main() {
    // 使用fmt包
    fmt.Println("Hello from fmt package")
    
    // 使用os包获取环境信息
    fmt.Println("操作系统:", os.Getenv("OS"))
    
    // 使用time包
    fmt.Println("当前时间:", time.Now())
}

注释

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
package main

import "fmt"

// 这是单行注释

/*
这是多行注释
可以跨越多行
*/

func main() {
    // 输出Hello World
    fmt.Println("Hello, World!")
    
    /*
    这里可以写多行注释
    来解释复杂的逻辑
    */
    fmt.Println("Go语言学习开始!")
}

编译和运行

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 直接运行(推荐用于开发阶段)
go run main.go

# 编译成可执行文件
go build main.go
./main  # Linux/Mac
main.exe  # Windows

# 编译并指定输出文件名
go build -o hello main.go
./hello

Go程序的基本规则

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package main

import "fmt"

func main() {
    // 1. Go语言区分大小写
    var name = "Go"
    var Name = "Golang"  // 这是不同的变量
    
    fmt.Println(name, Name)
    
    // 2. 语句不需要分号结尾(Go会自动插入)
    fmt.Println("不需要分号")
    
    // 3. 左大括号必须在同一行
    if true {  // 正确
        fmt.Println("大括号在同一行")
    }
    
    // 4. 包名通常使用小写
    // 5. 导出的函数/变量首字母大写,未导出的首字母小写
    fmt.Println("Println是导出的函数(首字母大写)")
}

总结

  1. 包声明:每个Go文件都必须以package声明开始
  2. 导入语句:使用import导入需要的包
  3. main函数:程序执行的入口点,必须在main包中
  4. 输出函数
    • fmt.Println() - 输出并换行
    • fmt.Print() - 输出不换行
    • fmt.Printf() - 格式化输出
  5. 编译运行
    • go run - 直接运行
    • go build - 编译成可执行文件
  6. 语法特点
    • 不需要分号
    • 左大括号必须在同一行
    • 区分大小写
    • 首字母大写表示导出
updatedupdated2025-09-202025-09-20