go语言笔记(一)包
包(命名空间)
1.基本概念
go的每一个文件都属于一个包(文件夹),go是以包的形式来管理文件和项目目录结构的
2.包的作用
1.区分相同名字的函数、变量等标识符
2.当程序文件很多时,可以很好地管理项目
3.控制函数、变量的作用域
3.代码指令
package xx//打包
imoport "yy"//导入yy包
4.包的使用
-GOPATH
-bin
-pkg
-src
-projectA // 项目文件夹
-utils //utils包
-utils.go
-main.go //实际上属于main包
//utils.go文件
package utils
import(
"fmt"
)
//将计算的功能放到一个函数中,然后在需要使用的时候调用
func Cal(n1 float64, n2 float64, operator string) float64 {//Cal首字母必须大写,否则不能被包外调用***
var res float64
switch operator{
case "+":
res = n1 + n2
case "-":
res = n1 - n2
case "*":
res = n1 * n2
case "/":
res = n1 / n2
default:
fmt.Println("操作符号错误...")
}
return res
}
package main
import(
"fmt"
"shangguigu/demo_pkg/utils"//此处shangguigu/demo_pkg即为项目文件夹
)
func main(){
//需求:输入两个数,在输入一个运算符,得到结果
var n1, n2 float64
var op string
// var n1,n2 float64 = 1.2, 3.1
// var op string = '+'
result := utils.Cal(n1, n2, op)
fmt.Printf("%.2f", result)
}
5.包的注意事项和细节
1.在给一个文件打包时,该包对应一个文件夹。文件的包名通常和所在文件夹名一致,一般为小写字母。
2.当一个文件要使用其他包中的函数或变量,必须先import
import "xx"//引入单个包
import (
"xx"
"yy"
)//引入多个包
3.路径从src下开始,不用带src
4.需要跨包调用的函数/变量一定要首字母大写
5.调用其他包函数的语法: 包名.函数名/变量名
6.包名较长时可以给包取别名,一旦取了别名,原名无法使用
import abc "aa/bb/aabbcc" //原名是aabbcc,别名是abc
abc.x()//正确运行
aabbcc.x()//报错
7.同一个包下不能有重复的函数名/全局变量名,会报错重复定义
8.main包只能有一个,其中包含程序的入口main函数,编译后会生成bin文件夹中的可执行文件。其他的包只生成.a库文件,编译后会出现在pkg文件夹中
go build -o bin/自己编辑的文件名.exe 路径/main.go