rqdmap
博客
/
Posts
算法
/
ACM
漫评
/
Anime
归档
/
Archive
关于
/
About
日志
/
Changelog
统计
/
Statistics
博客
/
Posts
算法
/
ACM
漫评
/
Anime
归档
/
Archive
关于
/
About
日志
/
Changelog
统计
/
Statistics
Go
Go 高质量编程
2022.05.12 13:42
2023.09.01 18:14
Go
1566字
编码规范 代码格式 一定使用gofmt进行格式化。 注释 解释代码的作用 这种注释适合说明公共符号,比如注释解释向外提供的函数等,只有在函数功能简单而明显时才应该省略这些注释。 解释代码的实现 对代码中复杂、隐晦的逻辑进行说明。不要使用自然语言直接翻译代码,这不好。 解释代码实现的原因 注释可以解释代码的外部因素,这些因素脱离了上下文后通常难以理解。 解释代码可能出错的情况 注释应该提醒使用者一些潜在的限制条件或者无法处理的情况。 公共符号的注释 Google Style指南有两条规则:任何既不明显也不简短的公共功能必须予以注释;无论长度或者复杂度如何,库中的任何函数都必须予以注释。一个例外是,不要注释实现接口的方法! 命名规范 变量 简洁胜于冗长 缩略词使用全大写(如HTTP,XML等),但当其位于变量开头且不需要导出时,使用全小写(如使用ServeHTTP而不是ServeHttp, 使用XMLHTTPRequest或者xmlHTTPRequest) 全局变量在名字中需要携带更多的上下文信息,使得不同地方都可以轻易辨认出其含义。 函数 函数名不包含包名的上下文信息,因为包和函数总是成对出现的。 尽量简短 当名为foo的包中某个函数的返回类型是Foo时,可以省略类型信息而不产生歧义,当返回的是其余类型时,则可以在函数名中加入类型信息。 包 只有小写字母组成。 简短并包含一定的上下文信息 不和标准库同名。 尽量满足以下规则: 不使用常用变量名作为包名 使用单数而不是复数 谨慎地使用缩写,利用使用fmt在不破坏上下文的情况下比format更加简短。 控制流程 遵循线性原理,尽量避免嵌套,保持正常流程清晰。 尽量保持正常代码路径为最小缩进,优先处理特殊、错误情况,尽早开始重新循环来减少嵌套。 错误和异常处理 简单错误 简单错误是指金出现一次的错误,且在其他地方不需要捕获该错误,则优先使用error.New来创建匿名变量直接表示简单错误;如果有格式化的要求,使用fmt.Errorf ...
Go 进阶
2022.05.06 21:51
2023.09.01 18:14
Go
4267字
并发 Go语言中的并发程序可以用两种手段来实现。本章讲解goroutine和channel,其支持“顺序通信进程”(communicating sequential processes)或被简称为CSP。CSP是一种现代的并发编程模型,在这种编程模型中值会在不同的运行实例(goroutine)中传递,尽管大多数情况下仍然是被限制在单一实例中。 ...
Go 初步
2022.05.05 18:55
2023.09.01 18:14
Go
7099字
本文十分简略的对Go语言的一些语法进行学习,并对Go语言圣经进行了大量的抄录,且十分没有条理,0%自我理解,故仅以此作为一个简单的入门。 编程语言的学习必须扎根于代码实战,因而基础的八股什么的还是走马观花比较好吧 如何编写Hello Wold? 1package main 2 3import "fmt" 4 5func main() { 6 fmt.Println("Hello, 世界") 7} 关于fmt包,有解释 Package fmt implements formatted I/O with functions analogous to C’s printf and scanf. The format ‘verbs’ are derived from C’s but are simpler. 通过go run 可以运行go文件,而go build则可以根据平台生成对应的可执行文件,其采用静态编译的方式。 ...
创建时间
修改时间
字数