文章

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 :=
License:  CC BY 4.0 test