go语言基础语法| 青训营笔记

82 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

1.标识符

标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(A~ Z和a~ z)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字。

2.Go语言命名规范

任何需要对外暴露的名字都需要大写字母开头,不需要对外暴露的名字则应该以小写字母开头。 当命名以一个大写字母开头的时候,使用这个标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出;命名如果是以小写字母开头,则对包外是不可见的,但他们在整个包内部是可见且可用的。

包名称

保持package的名字与目录一致,尽量采取有意义的包名,简短,尽量不要和标准库冲突,包名应为小写单词,不要使用下划线或者混合大小写。

文件名

简短,尽量有意义,应为小写单词,使用下划线分割各单词。

my_name.go

结构体命名

结构体采用驼峰命名法,首字母根据访问控制大小写。骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母,它是一种惯例,并无强制要求,为了增加识别性和可读性。

myFirstName

接口命名

与结构体类似,单个函数以"er"结尾,如reader。

变量命名

变量名称一般遵循驼峰命名法,首字母根据访问控制原则控制大写或小写,但遇到特有名词需要遵循以下原则:

  • 如果变量为私有,且特有名词为首个单词,则使用小写,如appService.
  • 若变量类型为bool,则名称应以Has、is、Can、Allow开头。
var isExist bool

常量命名

常量命名全部由大写字母组成,并使用下划线分词。

const APP_URL ="https://www.baidu.com"

如果是枚举类型的常量,需要先创建相应类型:

type Scheme string

const (
    HTTP  Scheme = "http"
    HTTPS Scheme = "https"
)

3. 错误处理

  • 错误处理的原则就是不能丢弃任何有返回err的调用,不要使用 _ 丢弃,必须全部处理。接收到错误,要么返回err,或者使用log记录下来
  • 尽早return:一旦有错误发生,马上返回
  • 尽量不要使用panic,除非你知道你在做什么
  • 错误描述如果是英文必须为小写,不需要标点结尾
  • 采用独立的错误流进行处理
// 错误写法
if err != nil {
    // error handling
} else {
    // normal code
}

// 正确写法
if err != nil {
    // error handling
    return // or continue, etc.
}
// normal code

4. 单元测试

单元测试文件名命名规范为 example_test.go 测试用例的函数名称必须以 Test 开头,例如:TestExample 每个重要的函数都要首先编写测试用例,测试用例和正规代码一起提交方便进行回归测试 。

go语言变量

声明变量

go语言变量必须声明后再使用,同一作用域不支持重复声明,声明后不使用会报错。

声明变量语法

var identifier type

var:声明变量关键字

identifier:变量名称

type:变量类型

package main
import "fmt"
func main(){
var name string
}

批量声明

使用一个var关键字,把一些变量写在一个()里

package main
func main(){
var (  name string
        age int
        )
        }

变量初始化

var 变量名 类型 = 表达式

类型推导

声明变量的时候,可以根据初始化值进行类型推导,从而省略类型。

package main 
func main () {
var name = "tom"
}

初始化多个变量

可以初始化多个变量,中间用逗号分隔。

package main
func main() {
   var name,age = "老郭",30
   }