Go语言上手-基础语言 | 青训营笔记

145 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记

1.go语言特点:

  1. 静态链接:blog.csdn.net/songjinshi/… 全部拷贝一份 会变得很大
  2. 垃圾回收:类似与java的自动回收机制
  3. 跨平台:linux,ios,路由器,树莓派上都可以跑

2.基础语法

2.1 hello world

package main -- 该文件属于main包

import(

"fmt" -- 标准库里的一个包,负责输入输出字符串 格式化字符串

)

func main(){

fmt.Println("hello world!")

}

2.2 变量

方式1:var a (string可省略) = "initial" 方式2:a := "initial"

2.3 常量

const a (string可省略) = "initial"

2.4 if else

tips:

1.else必须跟在括号后面

2.条件里不用加括号

eg. if 7%2 == 0 {

xxxx

} else {

xxxx

}

2.5 for循环

for i := 0; j <= 5; j++{

xx

}

2.6 switch

a:=2

switch a{

case 1:

xxxx

case 2:

xxxx

default:

xxxx

}

2.7数组

长度固定,因此很少用

var a [5]int

a[4] = 100

len(a)

2.8 切片

方式1:s := make([]type,len)

方式2:s := []string{"g","o","o","d"}

s := make([]string,3)

扩展长度:

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

2.9 map

m:=make(map[string]int) m["one"] = 1

2.10 range

对于一个map或者slice,可用range来进行快速遍历

对于map:

for k,v := range m{

xxxx

}

对于slice:

for i,num := range nums{

xxxx

}

也可以仅仅 index 或者 key

2.11 函数

变量类型后置

一般都返回两个值,一个结果,一个错误信息

2.12 指针

func add(n *int) {}

2.13 结构体

type user struct{

name string

password string

}

实例化:a := user{name:"wang",password:"1234"}

或者先初始化再 a.name a.password

2.14 结构体方法

func (u user) checkPaassword(password string) bool(这个是返回值类型){}

func (u *user) checkPaassword(password string) {} -- 右指针可以对结构体进行修改

2.15 错误处理

如果出现错误,返回nil和error 否则返回原本的结果和nil

import{

"errors"

}

2.16 字符串操作

是否包含某个字母,拼接,拆分等等...

2.17 字符串格式化

fmt.Printf("s=%v\n",s)

用v来代表所有,不用区分

+v,#v可以打印更加详细的信息

2.18 Json处理

只要保证结构体里的每个字段第一个字母是大写,就可以直接用JSON.Marchaler去序列化成一个json字符串(用unmachaler反序列化)

名字可以修改

type userInfo struct{

Name string

Age int 'json:"age"'

Hobby []string

}

2.19 时间处理

now.Unix获得时间戳

time.Now获取当前时间

2.20 数字解析

import{

"strconv"

}

f,_ := strconv.ParseFloat("1.234",64)

2.21 进程信息

用os.Args来得到程序执行时的制定命令行参数

3.实战

3.1猜谜游戏

3.1.1读取用户输入

3.1.2用时间戳来初始化随机数种子!

rand.Seed(time.Now().UnixNano())

secretNumber := rand.Intn(maxNum)

3.1.3循环

3.2 在线词典

3.2.1 request body fanyi.caiyunapp 随便搜一个 copy as cUrl 得到一大串json

3.2.2 然后打开curlconverter.com/#go

3.2.3 reponse body json转struct oktools.net/json2go