美文网首页
04. Go极简教程 初始化顺序\命名规范

04. Go极简教程 初始化顺序\命名规范

作者: 超级大柱子 | 来源:发表于2018-06-03 19:26 被阅读37次

初始化顺序

先执行import包的每个文件的变量, 然后是init方法, 最后执行main函数, 当main函数执行结束程序退出

一图胜千言

函数\变量\结构体 命名

某个名称在包外是否可见,取决于其首个字符是否为大写字母

Go中约定使用驼峰记法 MixedCaps 或 mixedCaps。

由于结构体在大多数地方会被引用, 所以通常是大写开头

接口名

按照约定,只包含一个方法的接口应当以该方法的 名称加上-er后缀 或类似的修饰来构造一个施动着名词,如 Reader、Writer、 Formatter、CloseNotifier 等.

请不要使用I开头作为接口命名 如IRead, IWrite

重新声明与再次赋值

f, err := os.Open(name)

该语句声明了两个变量 f 和 err。在几行之后,又通过

d, err := f.Stat()

注意,尽管两个语句中都出现了 err,但这种重复仍然是合法的:err 在第一条语句中被声明,但在第二条语句中只是被再次赋值罢了

在满足下列条件时,已被声明的变量 v 可出现在:= 声明中:

  • 本次声明与已声明的 v 处于同一作用域中(若 v 已在外层作用域中声明过,则此次声明会创建一个新的变量§),
  • 在初始化中与其类型相应的值才能赋予 v, 且 在此次声明中至少另有一个变量是新声明的

空白符

若你只需要该遍历中的第二个项(值),请使用空白标识符,即下划线来丢弃第一个值:

for _, value := range array {
    sum += value
}

类型选择

使用t.(type)进行类型判断

var t interface{}
t = functionOfSomeType()
switch t := t.(type) {
default:
    fmt.Printf("unexpected type %T\n", t)     // %T 输出 t 是什么类型
case bool:
    fmt.Printf("boolean %t\n", t)             // t 是 bool 类型
case int:
    fmt.Printf("integer %d\n", t)             // t 是 int 类型
case *bool:
    fmt.Printf("pointer to boolean %t\n", *t) // t 是 *bool 类型
case *int:
    fmt.Printf("pointer to integer %d\n", *t) // t 是 *int 类型
}

make 分配

下面的例子阐明了 new 和 make 之间的区别

var p *[]int = new([]int)       // 分配切片结构;*p == nil;基本没用
var v  []int = make([]int, 100) // 切片 v 现在引用了一个具有 100 个 int 元素的新数组

// 没必要的复杂:
var p *[]int = new([]int)
*p = make([]int, 100, 100)

// 习惯用法:
v := make([]int, 100)

请记住,make 只适用于映射、切片和信道且不返回指针。若要获得明确的指针, 请使用 new 分配内存。

打印

fmt.Printf("Hello %d\n", 23)
fmt.Fprint(os.Stdout, "Hello ", 23, "\n")
fmt.Println("Hello", 23)
fmt.Println(fmt.Sprint("Hello ", 23))

fmt.Sprintf,字符串函数(Sprintf 等)会返回一个字符串

空白符导入

当一个程序未被直接使用时,可以作为空白符导入

参考资料:
http://go-tour-zh.appspot.com/

Go极简教程 继续阅读( 目录)

相关文章

  • 04. Go极简教程 初始化顺序\命名规范

    初始化顺序 先执行import包的每个文件的变量, 然后是init方法, 最后执行main函数, 当main函数执...

  • 01 Go极简教程 目录

    极简教程的初衷是给已有其他语言基础的人阅读尽可能少的内容学习Go语言 Go极简教程 目录 Go极简教程 环境安装及...

  • 07. Go极简教程 map的基础使用

    map的声明 map的操作 参考资料:http://go-tour-zh.appspot.com/ Go极简教程 ...

  • 2020-05-19

    go 文件代码初始化顺序

  • CSS书写规范、顺序和命名规则

    CSS书写规范、顺序和命名规则 一、CSS书写顺序 1.位置属性(position, top, right, z-...

  • Go Quick Start 极简教程

    Go 官网:https://golang.org/[https://golang.org/]文档:https://...

  • Go语言变量命名规范

    变量命名规范要求 名字必须以一个字母或下划线开头,后面可以跟任意数量的字母、数字或下划线。大写字母和小写字母是不同...

  • Android命名规范

    命名规范 1. 包命名 规则:包名全部小写,采用反域名命名规则,一级包名是顶级域名,通常为com, edu, go...

  • 2-4 Go --- 命名规范

    一、定义规范 Go语言中的变量名、常量名、函数名、类型名、语句标号和包名等所有的命名所遵循的规范。 1、一个命名可...

  • GO ---1(hello world)

    go中,初始化的顺序,package ->const->var ->init()->main() 为了使用导入的包...

网友评论

      本文标题:04. Go极简教程 初始化顺序\命名规范

      本文链接:https://www.haomeiwen.com/subject/abfssftx.html