标签:
1. Go语言环境变量
Go语言开发环境依赖一些操作系统环境变量,常用的环境变量如下:
2. Go语言的命令行工具
Go语言自带有一套完整的命令操作工具,你可以通过在shell中输入go来查看:
$ go
Go is a tool for managing Go source code.
Usage:
go command [arguments]
The commands are:
build compile packages and dependencies
clean remove object files
env print Go environment information
fix run go tool fix on packages
fmt run gofmt on package sources
get download and install packages and dependencies
install compile and install packages and dependencies
list list packages
run compile and run Go program
test test packages
tool run specified go tool
version print Go version
vet run go tool vet on packages
Use "go help [command]" for more information about a command.
Additional help topics:
c calling between Go and C
filetype file types
gopath GOPATH environment variable
importpath import path syntax
packages description of package lists
testflag description of testing flags
testfunc description of testing functions
Use "go help [topic]" for more information about that topic.
我们简单介绍下常用的命令。
ok archive/tar 0.011s
FAIL archive/zip 0.022s
ok compress/gzip 0.033s
...
默认的情况下,不需要任何的参数,它会自动把你源码包下面所有test文件测试完毕,当然你也可以带上参数,详情请参考go help testflag。
Go语言还有其他一些命令参数,如go env, godoc,详细信息可以通过go help进行查看。
三. Go语言基础
1. 标示符和关键字
Go语言的标示符(变量名,函数名)是一个非空的字母或数字串,其中第一个字符必须是字母,该字符也不能是关键字的名字。Go语言一共有25个关键字,如下:
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
Go语言同样预定义了许多标示符,可以很方便的使用,如下:
bool byte complex64 complex128 error float32 float64
int int8 int16 int32 int64 rune string
uint uint8 uint16 uint32 uint64 uintptr
true false iota
nil
append cap close complex copy delete imag len
make new panic print println real recover
空标示符"_"是一个占位符,它用于在赋值操作的时候将某个值赋值给空标示符号,从而达到丢弃该值的目的。空标示符不是一个新的变量,因此将它用于:=操作符号的时候,必须同时为至少另一个值赋值。下面有几个例子:
count, err = fmt.Println(x) // 获取打印的字节数以及相应的error值
count, _ = fmt.Println(x) // 获取打印的字节数,并且丢弃error值
2. 常量和变量
常量使用关键字const声明,变量可以使用关键字var声明,也可以通过使用快捷变量声明语法:=。Go语言可以自动推断出所声明变量的类型。对于没有显式初始化的变量,Go语言总是将零值赋值给该变量。在Go语言中,声明变量的时候类型名总是在变量名的后面。下面有几个例子:
const limit = 512 // 常量,其类型兼容任何数字
const top uint16 = 1421 // 常量,类型:uint16
last := 1.5 // 变量,推断类型 flat64
var a int // 变量,值为0,类型 int
var debug = false // 变量,推断类型 bool
当需要设置多个常量的时候,不必重复使用const关键字,可以使用以下语法(var声明同样可以使用):
const (
Cyan = 0
Black = 1
White = 2
)
四. 数值类型和布尔类型
Go语言提供了大量的内置数据类型,每一个数值类型都不同,意味着不能在不同类型之间进行二进制数值运算或者比较操作。无类型的数值常量可以兼容内置的任何类型的数值,在不同类型数值之间进行运算或者比较操作,需要进行类型转换。类型转换采用type(value)的方式,只要合法就能转换成功,即使会导致数据精度丢失。
1. 整型
Go语言提供了11中整型,如下列表所示
类型 |
说明 |
byte |
等同于uint8 |
int |
依赖于不同平台下的实现,可以是int32或者int64 |
int8 |
[-128, 127] |
int16 |
[-32768, 32767] |
int32 |
[-2147483648, 2147483647] |
int64 |
[-9223372036854775808, 9223372036854775807] |
rune |
等同于uint32 |
uint |
依赖于不同平台下的实现,可以是uint32或者uint64 |
uint8 |
[0, 255] |
uint16 |
[0, 65535] |
uint32 |
[0, 4294967295] |
uint64 |
[0, 18446744073709551615] |
uintptr |
一个可以恰好容纳指针值的无符号整型(对32位平台是uint32, 对64位平台是uint64) |
在C语言中我们可以通过sizeof操作符查看类型的字节长度,在Go语言中可以通过unsafe.Sizeof函数进行,使用vim创建源文件type_length.go,输入以下代码:
package main
import (
"fmt"
"unsafe"
)
func main() {
a := 12
fmt.Println("length of a: ", unsafe.Sizeof(a))
var b int = 12
fmt.Println("length of b(int): ", unsafe.Sizeof(b))
var c int8 = 12
fmt.Println("length of c(int8): ", unsafe.Sizeof(c))
var d int16 = 12
fmt.Println("length of d(int16): ", unsafe.Sizeof(d))
var e int32 = 12
fmt.Println("length of e(int32): ", unsafe.Sizeof(e))
var f int64 = 12
fmt.Println("length of f(int64): ", unsafe.Sizeof(f))
}
以上代码中,首先声明了目前的源文件属于main包,然后导入了fmt和unsafe包,fmt包用于格式化字符串,unsafe包含了用于获取Go语言类型信息的方法。然后在main函数中,我们分别声明了几种类型的整型变量,并通过unsafe.Sizeof方法获取该类型的字节长度。最后我们通过以下方法运行type_length.go,同时打印出了输出:
$ go run type_length.go
length of a: 8
length of b(int): 8
length of c(int8): 1
length of d(int16): 2
length of e(int32): 4
length of f(int64): 8
2. 浮点类型
Go语言提供了两种浮点类型和两种复数类型, 具体如下:
类型 |
说明 |
float32 |
±3.402 823 466 385 288 598 117 041 834 845 169 254 40x1038 计算精度大概是小数点后7个十进制数 |
float64 |
±1.797 693 134 862 315 708 145 274 237 317 043 567 981x1038 计算精度大概是小数点后15个十进制数 |
complex32 |
复数,实部和虚部都是float32 |
complex64 |
复数,实部和虚部都是float64 |
3. 布尔类型
Go语言提供了内置的布尔值true和false。Go语言支持标准的逻辑和比较操作,这些操作的结果都是布尔值。值得注意的地方是可以通过!b的方式反转变量b的真假。
标签:
原文地址:http://www.cnblogs.com/xdjyw/p/5135132.html