什么是Go?
go是一门并发支持、垃圾回收的编译型系统编程语。旨在创造一门具有在静态编译语言的高性能和动态语言的高并发之间拥有良好平衡点的一门编程语言。
官方网站:https://golang.org
Go特点
- 类型安全和内存安全
- 以非常直观和极低代交的方案执行高并发
- 高效的垃圾回收
- 快速编译
- UTF-8支持
go的存在价值
安装
下载链接:
http://www.golangtc.com/download
安装比较简单,直接点击下一步就可
安装好之后,软件会自动帮我们配置path环境。
安装okey以后,可以通过再命令提示符中输入go env 查看go语言编译参数
GOPATH设置
goPath有什么用呢?
GOPATH是一些目录,用于go来查找包的目录列表. 使用import “包名” 的时候, 如果在 GOROOT(安装目录)里找不到, 应该会转向到你的GOPATH里去寻找。
GOPATH可以有效避免第三方包污染了核心go的pkg和src文件。
$GOPATH 目录约定有三个子目录:
- src 存放源代码(比如:.go .c .h .s等)
- pkg 编译后生成的文件(比如:.a)
- bin 编译后生成的可执行文件
通过set gopath 来设置path命名
当然在windows下也可以通过环境变量来设置
go常用命令
go get
获取远程包
go run
编译列出的文件,并生成可执行文件然后执行。注意只能用于main包,否则会出现go run: cannot run non-main package的错误。
go bulid
编译包,如果是main包则在当前目录生成可执行文件,其他包不会生成.a文件;
go fmt
格式化源码
go install
编译包,同时复制结果到
go test
运行测试文件
go doc
查看文档
帮助文档的使用
通过go doc+相应的命令
直接访问官方网站:https://golang.org
如果网速比较忙,可以通过在命令行输入go doc -http=:8081
这样,就可以在本地访问
go语言中数据类型
- 布尔 bool
长度:1个字节
取值范围:true、false
不可以使用数字代表true、false - 整型 int/uint
平台如果是32位则为32,平台如果是64位,则为64位,由平台所定。
可以通过数字限定整型范围如下
int8/uint8代表8位整型
范围-128~127/0~255
当然还有int16/uint16、int32/uint32、int64/uint64 - 字符型byte(uint8别名)
- 浮点型float32/float64
长度4/8字节 - 复数:complex64/complex128
长度8/16字节 - 其它类型
array、struct、string - 引用类型
slice、map、chan - 接口类型
inteface - 函数类型func
变量的声明
变量声明格式
var <变量名> <变量类型>
变量的赋值
<变量名>=<表达式>
在声明的同时赋值
var <变量名> [<变量类型>]=<表达式>
var a int8 //变量声明
a=16 //变量赋值
var b int =15 //同时进行变量声明和赋值
var c int =15 //同时进行变量声明和赋值
d:=15//变量声明和赋值最简写法
实例
在D:\goProject下目录结构
——-bin
——-src
————–main
———————index.go
———————trace.go
——-pkg
//index.go文件如下
//命名当前程序的包名
package main
//通过import导入其他包
import "trace"
// 定义常量
func main(){
hello()
trace.Show("hello,world")
}
//首字母小写,表示外部不能调用
func hello(){
trace.Show("hello,lidequan")
}
//trace.go
package trace
import "fmt"
//首字母大写,表示外部可以调用
func Show(str string) {
fmt.Println("a.go is package mufunc.")
fmt.Println(str)
}
在命令提示中输入go install
命名
可以看到bin目录下生成exe可执行文件,在pkg下生成包文件
如果想直接运行,也可以通过go run +index.go
注意事项
1.每个子目录中只能存在一个package,否则编译时会报错
大小写问题
在go语言中,使用大小写来决定常量、变量、类型、接口、结构或是函数是否可以被外部所调用。如函数名首字母小写即为private,外部不可以调用,首字母大写即为public,外部可以调用。
有疑问加站长微信联系(非本文作者)