青训营笔记

68 阅读2分钟

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

##础语法 Hello World##

package main //入口文件

import{"fmt“} //fmt包,用来输入输出字符串,格式化字符串

func main() { fmt.Println("Hello World") }

Go的变量类型

#字符串是内置类型,可以直接通过加号拼接

g := a + "foo"

变量声明方式:

1: var a = "initial"

2: f := float32(e)

常量声明方式:

const s string = "constant"

const h = 2000

基础语法 if-else:

if 后面不要括号

if 7%2==0{

fmt.println("7 is even")}

但是写了也没事,编译器会自动去掉

循环:

只有for循环

for{ fmt.Println("loop") break } //死循环

for j :=7; j<9; j++{ fmt.Println(j) } //和C语言一样

continue--继续循环

break-----跳出循环

switch选择语句:

和C++类似,但是不需要加break语句,可以使用任意的变量类型

数组:

声明方式:

var a[5]int

切片:

可变长度数组,使用make创建切片

s := make([]string,3)

s[0]="a"

可以使用append来堆栈,使用append必须要赋值回去

s=append(s,"d")

s=append(s,"e","f")

有着与python一样的切片操作,

fmt.Println(s[2:5])

fmt.Printtln(s[:5])

fmt.Println(s[2:])

基础语法:map:

实质-哈希

使用make创建map:

m := make(map[string]int)

key的类型:string

value的类型:int

通过方括号语法写入:

m["one"] = 1

m["two"] = 2

读取:

fmt.Println(m) //map[one:1 two:2]

fmt.Println(len(m)) // 2

fmt.Println(m["one"]) //1

fmt.Printlln(m["unknown"]) //0

删除:

delete(m,"one")

基础语法:range:

range遍历,对于数组会返回两个值(索引,对应位置的值)

遍历map的话第一个值是key,第二个值是value

74013f157ff24c6f297332b835caf82.png

函数:

image.png 变量类型后置

指针: 操作有限,对传入的值进行修改

image.png

结构体:

image.png 初始化时要传入初始化的每个值

没有指定初始化的值会被初始化成空值

读取或写入使用”.“,参考代码16,17行

结构体方法:

image.png

错误处理:

使用一个单独的返回值来返回错误的信息,在函数的返回值里添加一个error,当return时,return两个值

字符串格式化:

image.png

Json处理:

image.png

变量第一个字母为大写

使用json.Marsha进行数列化,数列化后直接输出数列化后的数组为16进制数字,使用string强制约转换后输出字符串,参照代码20,21行

时间处理:

image.png

需要引用"time"

最常使用:time.Now

数字解析:

image.png

进程信息:

image.png