默认安装目录: /usr/local/go/
编译器启动文件: /usr/local/go/bin/go
配置环境
export PATH=/usr/local/go/bin:$PATH
-
src 放置编写的go代码和依赖
-
crm
- app.go
-
bin 编译可执行文件
pkg 包文件 公共文件
Go安装目录
export GOROOT=/usr/local/go
代码和编译之后的文件相关代码
export GOPATH=/Users/zoe/GolangProjects
存放可执行编译之后的文件
export GOBIN=/Users/zoe/GolangProjects/bin
生效
记得mac要换成bash的shell
vim .bash_profile
source ~/.bash_profile
~/.profile #不一定有用
编译运行
go run
命令等价于先执行 go build 生成可执行文件,然后再运行可执行文件,相当于二合一的操作。
编译器的run会生成一个可执行文件在/private/var/folders路径下然后执行
go build
执行完命令之后,就会在当前项目目录下自动生成一个可执行文件(默认文件名为项目),然后在执行此可执行文件即可。
go install
命令内部不仅可以对代码进行编译并还会将编译好的文件放在 $GOPATH/src 和 $GOPATH/pkg目录。
如果blog项目没有main包(只是一个类库),则install生成的 包文件 会放在 $GOPATH/pkg 目录;有main包则生成的 可执行文件 放在$GOPATH/src 目录。
mac系统会自动生成darwin_amd64目录,根据系统不同生成此目录会有差异。
包
一个文件夹为一个包
一个包下的所有文件package名必须一样,可以不和文件夹名一样
main包
必须写main函数,整个项目的入口。编译生成一个可执行文件。
不是main包,只有main函数则生成包文件,放在pkg 包名.a
非main包
代码分类
import (
"fmt"
"zoe/api"
)
func main() {
Add()
apia.BaiDu()
apia.Google()
}
import是路径名 api
调用的是包名apia
一个文件夹下有多个go文件,它们的package名必须一样,但可以不和文件夹名一样;
//文件中编写功能时,首字母大写
//大写时公有,小写私有当前自己的包使用
输出
内置函数
print
println
fmt包
fmt.Pring
fmt.PrintLn
进程里有stdin/stdout/stderr
name := "lalala"
nickname := name
fmt.Println(name, &name )
fmt.Println(nickname, &nickname )
int、string、bool是值类型
输入
有黄色背景表示有返回,但没有获取
有多个返回不能, :=写,可以直接写,=
count,err := fmt.Scan(&name, &age) //回车,无法结束,必须等到所有输入
count,err := fmt.Scanln(&name, &age) //回车,可以直接结束
_, _ = fmt.Scanf("哈哈哈%s 急急急", &name) //需要加空格分割,否则不稳定
用stdin的方式可以解决输入有空格的问题
reader := bufio.NewReader(os.Stdin) //标准输入
line, _, _ := reader.ReadLine() //所有都是_才去掉:
//line, 从stdin中读取一行数据(字节集合 转化为 字符串)
//isPrefix reader默认一次能读4096个字节(4096/3个汉字)一次性读完
// 1.isPrefix==false
// 2.先读一部分,isPrefix==true,再去读取isPrefix==false
data := string(line)
fmt.Println(data)
go里10进制是int型
2 8 16进制是string
网友评论