golang_day1
--------------------------------
---------
-------------
Go 程序结构
a go远吗按package 进行阻止,并且package要放到非注释的第一行
b 一个可执行程序只有一个main包和一个main函数
c main 函数是程序的执行入口
垃圾回收
内存⾃动回收,再也不需要开发⼈员管理内存
开发⼈员专注业务实现,降低了⼼智负担
只需要new分配内存,不需要释放
语言特性
a. 从语⾔层⾯⽀持并发,⾮常简单。只需要go⼀下
b. goroutine,轻量级线程,创建成千上万个goroute成为可能
3. channel
a. 管道,类似unix/linux中的pipe
b. 多个goroute之间通过channel进⾏通信
c. ⽀持任何类型
4. 多返回值
a. ⼀个函数返回多个值
5. 编译型语⾔
a. 性能只⽐C语⾔差10%
b. 开发效率和python、php差不多
go build -o bin/hello.exe 可以指定生成的 二进制 exe文件到指定目录,且文件名可指定
go run github.com/pingguoxueyuan/gostudy/
- 第 8 行,GOPATH 表示当前工作目录。
- 第 10 行,GOROOT 表示 Go 开发包的安装目录。
-
使用GOPATH的工程结构
在 GOPATH 指定的工作目录下,代码总是会保存在 $GOPATH/src 目录下。在工程经过 go build、go install 或 go get 等指令后,会将产生的二进制可执行文件放在 $GOPATH/bin 目录下,生成的中间缓存文件会被保存在 $GOPATH/pkg 下。
如果需要将整个源码添加到版本管理工具(Version Control System,VCS)中时,只需要添加 $GOPATH/src 目录的源码即可。bin 和 pkg 目录的内容都可以由 src 目录生成。设置和使用GOPATH
本节以 Linux 为演示平台,为大家演示使用 GOPATH 的方法。1) 设置当前目录为GOPATH
选择一个目录,在目录中的命令行中执行下面的指令:export GOPATH=`pwd`
该指令中的 pwd 将输出当前的目录,使用反引号`
将 pwd 指令括起来表示命令行替换,也就是说,使用`pwd`
将获得 pwd 返回的当前目录的值。例如,假设你的当前目录是“/home/davy/go”,那么使用`pwd`
将获得返回值“/home/davy/go”。
使用 export 指令可以将当前目录的值设置到环境变量 GOPATH中。2) 建立GOPATH中的源码目录
使用下面的指令创建 GOPATH 中的 src 目录,在 src 目录下还有一个 hello 目录,该目录用于保存源码。 -
在多项目工程中使用GOPATH
在很多与 Go语言相关的书籍、文章中描述的 GOPATH 都是通过修改系统全局的环境变量来实现的。然而,根据笔者多年的 Go语言使用和实践经验及周边朋友、同事的反馈,这种设置全局 GOPATH 的方法可能会导致当前项目错误引用了其他目录的 Go 源码文件从而造成编译输出错误的版本或编译报出一些无法理解的错误提示。 -
Go语言中的 GOPATH 也是一种类似全局包含的设计,因此鉴于 Visual Studio 在设计上的失误,建议开发者不要设置全局的 GOPATH,而是随项目设置 GOPATH。