这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
Go语言
Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。
撰写风格
在Go中有几项规定,当不匹配以下规定时编译将会产生错误。
- 每行程序结束后不需要撰写分号(;)。
- 大括号({)不能够换行放置。
- if判断式和for循环不需要以小括号包覆起来。
Go亦有内置gofmt工具,能够自动整理代码多余的空白、变量名称对齐、并将对齐空格转换成Tab。
go常用命令
1 build flags
2 go build
3 go clean
4 go doc
5 go env
6 go fix
7 go fmt
8 go generate
9 go get
10 go install
11 go list
12 go mod
13 go run
14 go test
15 go version
16 go vet
golang开发 vscode快捷键
快捷键位置
File->Preferences->Keyboard Shortcuts
常用快捷键
- 行注释 ctrl + /
- 块注释 shift+alt+a (可以修改为ctrl+shift+/)
- ctrl+a 全选
- ctrl+c 复制
- ctrl+v 粘贴
- ctrl+shift+k 删除行
- ctrl+e查找文件
- ctrl+shift+p 打开设置命令行
golang标识符、关键字、命名规则
标识符
标识符的英文是identifier,通俗的讲,就是给变量、常量、函数、方法、结构体、数组、切片、接口起名字。
标识符的组成
- 标识符由数字、字母和下划线(
_)组成。123 abc _ - 只能以字母和下划线(
_)开头。abc123 _sysVar 123abc - 标识符区分大小写。 name Name NAME
golang变量
变量是计算机语言中能储存计算结果或能表示值的抽象概念。不同的变量保存的数据类型可能会不一样。
声明变量
Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。 并且Go语言的变量声明后必须使用。
声明变量的语法
var identifier type
var:声明变量关键字
identifier:变量名称
type:变量类型
go语言常量
常量,就是在程序编译阶段就确定下来的值,而程序在运行时则无法改变该值。在Go程序中,常量可以是数值类型(包括整型、浮点型和复数类型)、布尔类型、字符串类型等。
定义常量的语法
定义一个常量使用const关键字,语法格式如下:
const constantName [type]= value
const:定义常量关键字
constantName:常量名称
type:常量类型
value:常量的值
1.rand()函数要先设置随机种子,用时间戳来设置随机数种子。
func main() {
maxNum := 100
rand.Seed(time.Now().UnixNano())
secretNumber := rand.Intn(maxNum)
fmt.Println("The secret number is ", secretNumber)
}
2.去,删除io.Reader.ReadString换行符
假设您想使用io.Reader.ReadString从stdin中获取一个数字,并且希望将该数字转换为整数。
在使用strconv.Atoi将其转换为整数strconv.Atoi ,必须删除新行char。
你该怎么做?
`package main
import ( "bufio" "os" "strings" )
func main() { reader := bufio.NewReader(os.Stdin) text, _ := reader.ReadString('\n') text = strings.TrimSuffix(text, "\n") }`
3.string 转换为 int:Atoi()函数
func Atoi(s string) (int, error)
由于 string 可能无法转换为int,所以这个函数有两个返回值:
第一个返回值是转换成 int 的值
第二个返回值判断是否转换成功
// Atoi(): string -> int i,_ := strconv.Atoi(“3”) println(3 + i) // 6
// Atoi()转换失败 i,err := strconv.Atoi(“a”) if err != nil { println(“converted failed”) }