《Go语言从入门到进阶实战》
文章平均质量分 66
Go语言从入门到进阶实战读书笔记
咕噜咕噜崩
理想还是要有的
展开
-
学习笔记之Go泛型
Go语言学习笔记——Golang 1.18新特性泛型Go 1.18 新增三大功能之一“泛型”怎么使用?转载 2023-10-12 15:12:39 · 84 阅读 · 0 评论 -
Go语言杂记
杂记只有两种声明方式:普通声明、初始化声明!原创 2021-08-19 19:33:34 · 190 阅读 · 0 评论 -
Go语言包
Go语言包builtin:内置压缩包操作archive:存档tar、zip压缩文件的存取!compress:压缩bzip2,flate、gzip、lzw、zlib!container:容器封装的数据结构container/heap这只是个接口,需要那种堆就需要自己去实现!container/list双向链表!var l list.List 、ll := list.New()container/ring环形链表!var r ring.Ring 、rr := ring.Ne原创 2021-08-20 14:02:28 · 547 阅读 · 0 评论 -
读书笔记之Go反射及编译
反射类型对象(reflect.Type)原创 2021-08-18 10:43:28 · 84 阅读 · 0 评论 -
读书笔记之Go并发
协程goroutine使用:go 函数名( 参数列表 ),当然也可以调用匿名函数 或 闭包。main函数会默认开启一个主goroutine【main函数结束,所有的goroutine都会结束】goroutine是由Go语言在运行时调度(直接在用户态调度),而线程是由操作系统调度!(需要转换为核心态)goroutine可以并发的,可以抢占式任务处理!Go1.5后默认执行runtime.GOMAXPROCS(runtime.NumCPU()),根据CPU数控制Go进程中的线程数!goroutine原创 2021-08-17 21:54:02 · 122 阅读 · 0 评论 -
读书笔记之Go接口
Go语言接口Go语言中的接口是非侵入式的:让接口与实现者真正解耦!实现者只实现目标方法,而无需指明是哪个接口的方法!接口更无需知道哪些类型实现了接口!接口中只有方法声明,或嵌套的接口,不能有其他类型结构,常量等!接口声明类似,接口和结构体一样,都是一种类型:(type关键字)type 接口类型名 interface{ 方法名1(参数列表1) 返回值列表1 方法名2(参数列表2) 返回值列表2 ......}注意点:接口类型名常以er结尾,比如:Writer;接口名、方法名原创 2021-08-15 20:44:38 · 111 阅读 · 0 评论 -
读书笔记之Go结构体
注:结构体就是对象结构体是一种复合的基本类型,结构体和基本类型使用方式一模一样!初始化可以省略变量名,但必须全部、有序!关键字typetype 关键字用于自定义一种数据类型,eg:type myInt int /myInt就是自定义的一种数据类型type 类型民 struct{ /这个结构体也就是自定义的一种数据类型 字段名1 T1 字段名2 T2 ...}定义结构体type 类型民 struct{ 字段名1 T1 字段名2 T2 ...}举例:(字段tags可原创 2021-08-15 14:06:35 · 125 阅读 · 0 评论 -
读书笔记之Go函数
声明函数func 函数名(参数列表) (返回参数列表){ ...}参数列表: 相同类型相邻参数,可以只保留最后一个类型:func add(a,b int) int{ return a+b}返回参数列表: 【要么全使用非命名,要么全使用命名!】func RetVlaues() (int ,int){ return 1,2}或可以命名后直接在函数中使用:func RetVlaues() (a,b int){ a = 1 b = 2 return}调用函数返回值变量列原创 2021-08-13 10:18:00 · 85 阅读 · 0 评论 -
读书笔记之Go控制语句
都没有了小 ()!if没有了小 ()if 表达式{ ...}else if 表达式{ ...}else{ ...}if后可以创建变量,再判断:但这样err变量只在if范围内if err := Connect(); err != nil{ fmt.Println(err) return}for没有了(),但同样:语句可以不写,但 ; 要写!!! for 初始语句;条件表达式;结束语句{ ... }但死循环 和 只有条件表达式时 可以省略两个原创 2021-08-11 22:41:02 · 73 阅读 · 0 评论 -
读书笔记之Go指针
每个变量都在内存中有地址,指针的值就是地址!指针(%p)ptr := &xx := *ptr指针的类型上图 x 为 int 类型,则对应的指针 ptr 为 *int 类型。(诸如此类)理解指针的用途对指针的操作就是对原数据的操作注:函数的压栈都是将形参的值拷贝进自己的函数空间!!!func swap1(a, b int) { /拷贝进来的是变量值 a,b = b,a}func swap2(a, b *int) { /拷贝进来的是变量地址 *a,*b = *b,*a原创 2021-08-10 10:27:13 · 49 阅读 · 0 评论 -
读书笔记之Go字符串
同样,字符串是不可变的。字符串不可变有很多好处:天生线程安全,大家使用的都是只读对象,无须加锁;方便内存共享,而不必使用写时复制(Copy On Write)等技术;字符串hash值也只需要制作一份。常用内建函数len(s):s的长度返回切片、字符串、通道等长度但注意:返回的是字符串的字节数,字符数需要使用utf8.RuneCountInString(s)ss := "忍者无敌ab"fmt.Println(len(ss)) /14fmt.Println(utf8.RuneCoun原创 2021-08-09 19:12:48 · 113 阅读 · 0 评论 -
读书笔记之Go数据类型
%v:任意变量%T:变量类型基本数据类型布尔型bool :true /false 不能参与基本数据类型的运算和转换整型(%b %o %d %x)整型是按字节数分的:int8 int16 int32 int64对应的无符号整型:uint8 uint16 uint32 uint64实际int uint是不存在的,但int uint 会根据不同平台分别对应不同整型(32 / 64 位)注:整型 := 默认推导为 ===> int浮点型(%f %.2f)float32 、float6原创 2021-08-09 19:12:29 · 149 阅读 · 0 评论 -
读书笔记之Go变量与常量
声明变量只记:var 到处行数据类型 || 初始化:= 只能在函数内package main //程序入口包import ( "fmt" "net") /** 变量 */ /* 一、声明变量 未初始化会有默认值 */ // 1.标准格式: var 变量名 变量类型 var x int // 2.批量格式: (注意:var(...)是小括号!!!) var ( a int //默认:0 整数类型 b string原创 2021-08-08 21:17:56 · 69 阅读 · 0 评论 -
读书笔记之创建Go项目
文件默认保存路径:$GOPATH/src/ 下go envGOARCH:目标处理架构GOBIN:编译器、连接器安装位置GOOS:目标操作系统GOPATH:当前工作目录GOROOT:Go开发包安装目录项目工作目录(GOPATH)必须有:src:项目源码【只能在项目的src中编写文件!】bin:编译生成的二进制文件(go install)pkg:存储预编译的目标文件,以加快程序的后续编译速度。Go Modules 代替 GOPATHGOPATH问题:所有的源码必须在$GOPA原创 2021-08-17 10:31:11 · 311 阅读 · 0 评论