go第一天
编译
使用 go build
1.在项目目录下执行go build
2.在其他路径下执行 go build ,需要在后面加上项目的路径(项目路径从GOPATH/src后开始写,编译之后的
可执行文件就保存在当前目录下)
3. go build -o hello.exe
4.go run main.go
5.go install
跨平台编译
Go 语言文件的基本结构
import "fmt"
//函数外只能放置标识符(变量/常量 函数 类型)的声明
//fmt.Println("Hello") //非法
//程序的入口函数
func.main(){
fmt.Println("Hello world!")
}
标识符与关键字
标识符
在编程语言中表示符就是程序员定义的具有特殊意义的词,比如变量名常量名,函数名等等,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
保留字
变量
变量的来历
程序运行过程中的数据都是保存在内存中,我们想要在代码中操作某个数据时就需要
去内存上找到这个变量,但是如果有我们直接在代码中通过内存地址去操作变量,代码的可读性会
非常差而且还容易出错,所以我们就利用变量这个数据的内存地址保存起来,以后直接通过这ge变量
就能找到内存上对应的数据了
变量类型
变量(variable)的功能是存储数据,不同的变量保存的数据类型可能会不一样,经过多个世界
的发展,编程语言已经基本形成了一套固定的类型,常见变量的数据类型有,整形, 浮点型 布尔型等
Go语言中的每一个变量都有自己的类型,并且变量必须经过声明才能开始使用。
变量声明
Go 语言中的变量需要声明后才能使用,用一个作用域内不支持重复声明,并且Go语言变量声明后必须使用。,
标准声明
Go语言的变量声明格式为:
var 变量名 变量类型
变量声明以关键字var 开头,变量类型放在变量的后面,行尾无需分号
var name string
var age int
var isOk bool
批量声明
var(
name string
age int
isOk bool
)
类型推导
有时候我们会将变量的类型省略,这个时候编译器会根据等号右边的值来推导变量的类型完成
初始化。
var name = "11112ws"
var age = 18
短变量声明
在函数内部,可以使用更简略的 := 方式声明并初始化变量。只能在函数内使用
var m = 100
func main(){
n := 10
m := 200
}
匿名变量
在使用多重赋值时,如果想要忽略某个值,可以使用 匿名变量,匿名变量用一个下划线表示,例如
func foo(int,string){
return 10,"sedd"
}
func main(){
x,_ := foo()
}
匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。
注意事项:
1.函数外的每个例句都必须以关键字开始(var const func等)
2. := 不能使用在函数外
3. _ 多用于占位,表示忽略值
4.同一个作用域,不能重复声明同名的变量
常量
相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。常量的声明
和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值
const pi = 3.1415
const e = 2.7182
声明了pi 和e这两个常量之后,在整个程序运行期间他们的值都不能在发生变化了
多个常量也可以一起声明
const(
pi = 3.14
e = 2.71
)
const 同时声明多个变量时,如果省略了值则表示和上面一行的值相同。 例如:
const (
n1 = 100
n2
n3
)
上面示例中,常量n1 n2 n3 的值都是100
iota
iota 是go语言的常量计数器,只能在常量的表达式中使用
iato 在const关键字出现时将被重置为0, const中每新增一行常量声明将使iota计数一次
(iota可理解为const语句块中的行索引),使用iota能简化定义,在定义枚举时很有用。
const(
n1 = iota //0
n2 //1
n3 //2
)
Go语言基础之基本数据类型
Go 语言中有丰富的数据类型,除了基本的整型,浮点型 布尔型 字符串外,还有数组,切片 结构体,函数
map 通道(channel) 等,Go 语言的基本类型和其他语言大同小异
基本数据类型
整型 分为以下两个大类,按长度分为,int8 int16 int32 int64 对应的无符号整型uint8 uint16 uint32 uint64
其中,uint8 就是我们熟知的byte 型,int16对应c语言中的short 型,int64对应c语言中的long型。
array 数组
数组是同一种数据类型元素的集合,在Go语言中,数组从声明时就确定,使用时可以修改数组成员
但是数组大笑不可变化,基本语法
//定义一个长度为3元素类型为int的数组a
var a [3]int
数组定义
var 数组变量名 [元素数量]T
数组的长度必须是常量,并且长度是数组类型的一部分,一旦定义,长度不能变化