一Go官方编程指南
(一)Golang官方网站 https://go.dev/
- 可以在官网写代码,运行go
2. 可以点击tour。选择语言之后,来进行编程指南的学习
3. Go标准库的api接口:可以查询go用的包,包括api(各个包的各个函数)的解释
(二)Golang中文网 https://studygolang.com/pkgdoc
这些go的包的源代码,在本地的go的sdk的安装路径下的go/src/的目录中
二Go开发注意事项
- Go源文件以"go"为扩展名
- Go应用程序的执行入口是main()函数
- Go语言严格区分大小写
- Go方法由一条条语句构成,++每个语句后不需要分号++(Go语言会在每行后自动加分号)这也体现出Golang的简洁性
- Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一行,否则报错
- Go语言++定义的变量++或者++import的包++如果没有使用到,代码不能编译通过
- 大括号都是成对出现的,缺一不可
三Go语言转义字符(escape char)
1 | \t | 一个制表位,实现对齐的功能 |
---|---|---|
2 | \n | 换行符 |
3 | \\ | 一个\ |
4 | \" | 一个” |
5 | \r | 一个回车 (从当前行的最前面开始输出,覆盖掉以前的内容) |
package main
import "fmt" //fmt包中提供格式化,输出,输入的函数
func main() {
//演示转义字符的使用
fmt.Println("tim\tjack")
fmt.Println("hello\nworld")
fmt.Println("E:\\冰封王座\\Warcraft")
fmt.Println("tom说\"i love you\"")
// \r 回车,从当前行的最前面开始输出,覆盖掉以前的内容
fmt.Println("天龙八部雪山飞狐\r张飞")
}
>go run main.go
tim jack
hello
world
E:\冰封王座\Warcraft
tom说"i love you"
张飞八部雪山飞狐
package main
import "fmt"
func main() {
fmt.Println("姓名\t年龄\t籍贯\t住址\njohn\t12\t河北\t北京")
}
**//注意:直接在上面的脚本同级目录下再新建这个文件,会报错。**因为此时在同一个main包下面有两个main函数(提示报错重复定义)。把这个脚本新建一个文件夹放进去即可
四Go开发常见错误和解决方法
1文件名字或者路径错误
2语法错误
忘记了大括号,引号,或者拼错了单词,Go编译器都会报语法错误,要求:尝试着去看懂编译器会报告的错误信息
五Go语言的注释
- 行注释
// 注释内容
vscode快捷键注释多行:选中要注释的多行,ctrl+/ 第一次表示注释,第二次表示取消注释
2. 块注释(多行注释) 块注释里面不允许有块注释嵌套
/*
注释内容
注释内容
注释内容
*/
六规范的代码风格
- Go官方推荐使用行注释来注释整个方法和语句
- 正确的缩进和空白
1).使用一次tab操作,实现缩进,默认整体向右边移动。shift+tab整体向左移动(缩进不统一,可以先shift+tab把每行都左顶头,在一起tab一次)
2). 或者使用gofmt来进行格式化(规范格式)
> gofmt main.go
只是把格式化的结果输出出来
> gofmt -w main.go
把格式化的结果写进文件
3). 运算符两边习惯性各加一个空格。比如:
var num = 2 + 4 * 5
- 代码风格
// 这么写是正确的
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
//Go语言不允许这么写,是错误的
package main
import "fmt"
func main()
{
fmt.Println("Hello World")
}
- 行长约定:
一行最长不超过80个字符,超过的请使用换行展示,尽量保持格式优雅
// 如果特别长的话
package main
import "fmt"
func main() {
fmt.Println("HelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorld")
}
//可以像下面这么写
package main
import "fmt"
func main() {
fmt.Println("HelloWorldHelloWorldHelloWorldHelloWorld",
"HelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorld",
"HelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHe",
"lloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHello",
"WorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWor",
"ldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldH",
"elloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHell",
"oWorldHelloWorldHelloWorld")
}