第四回:Go 语言结构

华府家规总览(程序结构)
华夫人
华夫人: 听好了!我们华府规矩森严,任何人说话做事(写代码)都要按规矩来!特别是包(Package)的规矩,乱了辈分可是要掌嘴的!

🏛️ 华府结构图(代码骨架)

一个标准的 Go 程序,就像华府的布局一样,井井有条。

package main  // 1. 门派归属(包声明)

import (
    "fmt"     // 2. 邀请贵宾(标准库)
    "time"
)

// 3. 这里的规矩(全局变量)
var wangsicong = "旺财"

// 4. 开场准备(init函数)
func init() {
    fmt.Println("华府大门开了...")
}

// 5. 正式演出(main函数)
func main() {
    fmt.Println("小强!") 
}

1. 门派归属 (package)

第一行必须说明你是哪个院子的。package main 表示你是主院(可执行程序)的人。如果写 package utils,那你就是后勤部(工具库)的,不能独立行动。

2. 邀请贵宾 (import)

你需要用到什么工具,得先请人。Go 语言对 import 查得很严:引入了包如果不使用,编译直接报错!(华夫人:不干活的人,我们华府不养!)

唐伯虎
唐伯虎: 夫人,import 还有三种花式玩法:

3. 这里的规矩 (Visibility)

这是 Go 语言最独特的家规:首字母大小写决定可见性

4. 开场准备 (init)

init() 函数是个急惊风,它会在 main() 之前自动执行。每个文件都可以有 init(),适合做初始化工作。

5. 正式演出 (main)

func main() 是总指挥部。注意:main 函数既没有参数,也没有返回值!

🎯 练功房(眼力测试)

请看下面的代码,找出哪个函数可以被其他包调用?

package tools

func calculate() { ... }
func Export() { ... }
var secret = "秘密"
var PublicInfo = "公告"

任务: 哪些是 Public 的?

答案: Export()PublicInfo

解析: 只要首字母是大写的,就是可以“出口”的。首字母小写的 calculatesecret 只能在 tools 包内部使用。