Go语言中包

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//定义一个包

package addpkg

import "fmt"

//定义 addpkg包
//对外可见 标识符首字母必须大写

//以下结构体对外可见
type Student struct {
Id int
Name string
Gender string
}
//对外不可见
var x = 100

// Add 加法
func Add(a, b int) int {
fmt.Println(x)
return a + b
}

// 使用包

package main

import (
"fmt"
"ropon.top/day03/3package/cacl"
)

//import 导包通常放到包声明下面
//import 别名 "包的路径"
//匿名导包 只导入包,不导入包内部数据
//import _ "包的路径"

//导包时会自动触发包内部init()函数
//init 函数执行时机 全局变量等声明=>init()=>main()

//init函数执行顺序
//导包顺序
//main => imort A => import B => import C
//init执行顺序
//main.init() <= A.init() <= B.init() <= C.init()
var aa = 10

func init() {
fmt.Println(aa)
fmt.Println("main包初始化~")
}

func f1(a string) string {
return "a"
}

func main() {
//res := addpkg.Add(1, 3)
//fmt.Println(res)
//fmt.Printf("recai\n")
//
//stu1 := addpkg.Student{
// Id: 1,
// Name: "Ropon",
// Gender: "man",
//}
//fmt.Println(stu1)
//f1("sss")
r1 := cacl.Add(6, 2)
r2 := cacl.Jian(6, 2)
r3 := cacl.Chen(6, 2)
r4 := cacl.Chu(6, 2)
fmt.Println(r1, r2, r3, r4)
}