go程序结构
1. 命名
遵行一个命名规则:一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。
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
还有37个预定义的名字,主要对应内建的常量、类型和函数
内建常量: true false iota nil 内建类型: int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr float32 float64 complex128 complex64 bool byte rune string error 内建函数: make len cap new append copy close delete complex real imag panic recover
一般推荐使用驼峰式命名规范,当命名由几个单词组成时优先使用大小写分隔,而不是优先使用下划线分隔。例如:QuoteRuneToASCII和parseRequestLine类似这样的命名,而不是quote_rune_to_ASCII和parse_request_line这样的命名,推荐使用前者命名规范。
2.声明
Go语言主要有四种类型的声明语句:var,const,type,func
,分别对应着变量、常量、类型和函数实体对象的声明。
3.变量
变量声明的一般语法:
var 变量名字 类型 = 表达式
var:声明变量的关键字,固定写法
变量名字:字面意思,就是变量名字
类型:代表定义变量的类型
举个🌰:
// 定义一个字符串类型的变量,name var name string //定义一个数字类型的变量,age var age int
Go语言是**静态**类型语言,简单来说,就是所有的类型都要明确的去定义。
Go语言支持定义多个变量,写法如下:
>```go
>var(
> name string
> addr string
> age int
>)
>```
>
>批量定义的变量,可以赋值,也可以不赋值,来看一组小测试
```go
package main
import "fmt"
func main() {
var (
name string
age int
bol bool
)
//string的默认值为"" 空
//int的默认值为 0
//bool的默认值为 false
fmt.Println(name, age, bol)
}
小结:
string的默认值为"" 空
int的默认值为 0
bool的默认值为 false
切片、函数、指针变量的默认值为nil(后续会学习到)
4.赋值
赋值怎么说呢,就相当于数学里面的x = 1,将1赋值给x一个道理
变量初始化的标准式
var 变量名 类型 = 值(表达式)
举个🌰:
var name string = "鲳鱼小丸子"
var age int = 18
我把字符串鲳鱼小丸子赋值给了name
18赋值给了age
短变量声明并初始化
name2 := "yama"
age2 := 19
再举个🌰:
package main
import "fmt"
func main() {
// :=自动推导,自动识别定义的类型
name2 := "yama"
age2 := 19
fmt.Println(name2, age2)
fmt.Printf("%T,%T", name2, age2)
}
结果:
yama 19
string,int
查看类型:%T
推导声明使用限制⚠️⚠️⚠️
定义变量,同时显示初始化
var name3 string
name3 := "you see you"
fmt.Println(name3)
//no new variables on left side of :=