go的语言结构
一、文件名、关键字与标识符
1.1 文件名
1、go 的源文件已 .go 为后缀名
2、文件名已小写组成 如:simple.go
3、如多个部分组成可用"_" 分割
4、不要包含有空格等特殊字符
1.2 标识符的命名规则
标识符(包括常量、变量、类型、函数名、结构字段等等)
1、标识符的命名规则:已字母或_开头的字母数字或_的组合
2、_ 有其特殊意义,不可单独使用
无效的标识符:
1ab(以数字开头)
case(Go 语言的关键字)
a+b(运算符是不允许的)
1.3 关键字
- 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 |
- 36 个预定义标识符(数据类型时讲解)
append | bool | byte | cap | close | complex | complex64 | complex128 | uint16 |
---|---|---|---|---|---|---|---|---|
copy | false | float32 | float64 | imag | int | int8 | int16 | uint32 |
int32 | int64 | iota | len | make | new | nil | panic | uint64 |
println | real | recover | string | true | uint | uint8 | uintptr |
二、组成要素
2.1 实例
src/day2/example1/main.go
package main
import "fmt"
var (
num1 int
num2 int
)
func main(){
num1 = 2
num2 =3
/* 我是多行注释 */
fmt.Println(sum(num1,num2))
}
// 求和函数
func sum(n1,n2 int)int{
return n1 + n2
}
2.2 解释
- 定义包名
pakcage main
告知go编辑器 该文件属于main包,同一个文件下可以有多个文件,但包名必须一致(通常包名与文件夹名一致,已便查看)
- 导入包
import "fmt"
告诉go 编辑器该文件需要使用fmt 包,包一旦导入必须使用,否则程序无法执行
- 全局变量
var(
num1 int
unm2 int
)
告诉go 编辑器,声明了两个变量,变量在声明阶段就已经初始化值了,int类型的初始值是0
go的变量一旦声明就必须使用否则会报错,不过现在全局变量的声明后可以不使用也不会报错(go1.13),以前是会保错的好像
- 程序入口
func main(){}
一个程序有且只有一个main函数,这是程序的入口
- 函数
func sum(int,int)int{}
告诉go 编辑器,main包中定义了一个函数,需要传入两个int类型的变量,返回int 值
- 调用函数
sum(num1,num2)
fmt.Println()
告诉go 编辑器调用了sum 函数和fmt包中的Println 函数
2.3 执行
go run src/day2/example1
5
2.4 注意
1、函数的语法错误
func sum(n1,n2 int)int
{ // 这样是错误的 { 不能单独放在一行
return n1 + n2
}
2、关于“;”
在大多数语言中,每一行的结尾都是需要已;结尾的,但是go 不需要,因为go编辑器在编译的过程中就已经默认的添加了.