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

428 阅读2分钟

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

一、什么是Go语言?

1.高性能、高并发

2.语法简单,学习曲线平缓(类似C/C++语言,且仅有for循环)

3.丰富的标准库(不需要使用第三方库、稳定、兼容、迭代)

4.完善的工具链

5.静态链接

6.快速编译

7.跨平台

8.垃圾回收

二、基础语法

1.字符串

字符串属于内置类型,可以用加号直接拼接,比较方法与C/C++类似。
字符串操作:
Strings.contains
Strings.count
Strings.Index
Strings.Join
Strings.Repeat
字符串格式化:
printf"%v/+v/#v/.2f"

2.变量声明与常量声明

变量声明:var 变量名 变量类型
常量声明:const 常量名(无确定类型,会根据上下文自动确定类型)

3.数组

var 变量名 [长度] 类型

4.if-else

if 条件 {} else {}

5.循环for

for 条件 {} 【breakcontinue用法与C/C++类似】

6.switch语句

switch后可以带变量名也可以不带变量名,不带变量名的需要在case后加条件。
与C/C++用法类似,区别在于,每个case语句后不需要加break跳出。

7.切片

s:=make([]string,3)
可用append追加元素。eg.s=append(s,元素)
可用copy复制元素。eg.c:=make([]string,len(s)) copy(c,s)
s[2:5] 与Python一样,前开后闭

8.map(无序)

m:=make(map[key类型]value类型)
删除。delete(m,key)
查看map是否有key存在。r,ok:=m(key)

9.range

可以对slice,map快速遍历。eg.mapfor k,v:=range m

10.函数

func(参数类型 参数名) 函数返回类型 {}

11.指针

对传入参数进行修改 *n(形参) &n(实参)

12.结构体

带类型字段集合 type进行声明

13.错误处理

error.New()

14.Json序列化

import encoding/json 结构体变量名要大写
json.Marshal json.UnMarshal

15.时间处理

import time
解析成时间:time.Date/time.Parse
获取时间戳:now.Unix()

16.数字解析

import strconv
将字符串转换成整型:strconv.ParseInt(字符串,进制,精度)
将字符串转换成浮点型:strconv.ParseFloat(同上)
将字符串转换成数字:strconv.Atoi(字符串)
将数字转换成字符串:strconv.Rtoi(字符串)

17.进程信息

import os;import os/exec
os.Getenv
os.Setenv
os.Args
exec.Command().ComnomedOutPut()【启动子进程并获取其输入输出】