golang
自学golang总结
LeviNinja
笔记
展开
-
GO语言学习之路26
2022/02/17redis 链接池最近公司工作还是有点忙的,学的慢了点~~~~,到这里,go语言基本是学完了基础篇了。下面做项目增强码力了!package mainimport ( "fmt" "github.com/garyburd/redigo/redis")/* redis 链接池 1.实现初始化一定数量的链接,放入到链接池 2.当GO需要操作Redis时,直接从Redis链接池取出链接即可 3.这样可以节省临时获取Redis链接的时间,从而提高效.原创 2022-02-17 23:15:01 · 300 阅读 · 0 评论 -
GO语言学习之路25
2022/02/16go操作redis,需要下载redis三方库package mainimport ( "fmt" "github.com/garyburd/redigo/redis")func main() { //1.连接到redis conn, err := redis.Dial("tcp", "127.0.0.1:6379") if err != nil { fmt.Println("redis.Dial err = ", err) return }.原创 2022-02-17 23:13:02 · 312 阅读 · 1 评论 -
GO语言学习之路24
go的网络编程案例原创 2022-02-16 00:36:36 · 490 阅读 · 0 评论 -
GO语言学习之路23
今天主要看了单向管道,反射,协程的错误处理机制,以及补了之前的常量部分的东西原创 2022-02-14 23:50:43 · 636 阅读 · 0 评论 -
GO语言学习之路22
golang的协程和channel综合使用案例原创 2022-02-13 23:40:12 · 338 阅读 · 0 评论 -
GO语言学习之路21
2022/02/12/*//进程和线程的基本介绍 1.进程就是程序在操作系统中的一次执行过程, 是系统进行资源分配和调度的基本单位 2.线程是进程的一个执行实例,是程序执行的最小单元, 它是比进程更小的能独立运行的基本单位 3.一个进程可以创建和销毁多个线程,同一个进程中的多个线程可以并发执行 4.一个程序至少有一个进程,一个进程至少有一个线程//goroutine的基本介绍 1.多线程程序在单核上运行,就是并发 ...原创 2022-02-13 01:30:09 · 172 阅读 · 0 评论 -
GO语言学习之路20
2022/02/11 //舒适的环境很难培养出坚强的品格,被安排好的人生也很难做出伟大的事业package mainimport ( "encoding/json" "fmt")type Monster struct { Name string `json:"name"` Age int Birthday string Sal float64 Skill string}/* func Marshal(v interface{}) .原创 2022-02-11 23:23:13 · 302 阅读 · 0 评论 -
GO语言学习之路19
2022/02/10 //主要讲了文件操作,看看几个包就熟悉了package mainimport ( "fmt" "os")//os.File 封装所有文件相关的操作,File是一个结构体func main() { //1. /* 打开和关闭文件 */ //打开文件 file, err := os.Open("e:/go.txt") if err != nil { fmt.Println("打开文件失败", err) } fmt.Println(file).原创 2022-02-11 00:27:25 · 274 阅读 · 0 评论 -
GO语言学习之路18
2022/02/09//今天就这么多吧,顶不住了,睡觉保狗命!package mainimport "fmt"/* 断言*/type Point struct { x int y int}type nilInterface interface{}func main() { var point Point = Point{1, 2} var x nilInterface /* 空接口还可以直接用 var x interface{} */ x = poi.原创 2022-02-11 00:25:36 · 286 阅读 · 0 评论 -
GO语言学习之路17
2022/02/08今天是复工第一天,晚上困得很,九点睡了以后晚上一点醒来写个接口编程的经典案例。---> 实现对Hero结构体切片的排序sort.Sort(data Interface)package mainimport ( "fmt" "math/rand" "sort")//1.定义一个Hero结构体,有name和age字段type Hero struct { Name string Age int}//2.定义一个Hero结构体切片类型type .原创 2022-02-09 01:36:59 · 232 阅读 · 0 评论 -
GO语言学习之路16
2022/02/07package mainimport "fmt"/* 1.结构体可以使用嵌套匿名结构体里面的所有字段和方法, 首字符大写或者小写的字段,方法都可以使用 2.匿名结构体字段访问可以简化 b.A.age = 18 // --> b.age = 18//可以简化 会先从b结构体中找age,如果找不到会从嵌入的A结构体中找 3.当结构体和匿名结构体有相同的字段或者方法时,编译器采用就近访问 原则,如果想要使用嵌入的匿名结构体中的变量需要指定嵌入的结构体.原创 2022-02-08 01:12:07 · 353 阅读 · 0 评论 -
GO语言学习之路15
2022/02/06package mainimport ( "fmt")/* *//* 编写结构体,编写一个方法,方法不需要参数, 在方法中打印一个 10*8 的矩形,在main方法中调用该方法*/type MethodsUtils struct { //无字段}func (med1 MethodsUtils) func1() { for i := 0; i < 8; i++ { for j := 0; j < 10; j++ { fmt..原创 2022-02-07 02:27:44 · 333 阅读 · 0 评论 -
GO语言学习之路14
2022/02/05 package mainimport ( "encoding/json" "fmt")/* 1.结构体的所有字段在内存中是连续的 2.结构体是用户单独定义的类型,和其他类型进行转换时, 需要有完全相同的字段(名字,个数和类型,顺序) 3.结构体进行type重新定义,相当于区别名, golang认为是新的数据类型,但是可以相互强转 4.在struct的每个字段上,可以写上一个tag,该tag可以通过反射机制获取 常见的使用场景就是序.原创 2022-02-06 00:44:19 · 267 阅读 · 0 评论 -
GO语言学习之路13
2022/02/04package mainimport ( "fmt" "sort")/* map是key-value数据结构,又称为字段或者关联数组,类似其他编程语言的集合 基本语法: var map变量名 map[keytype]valuetype key可以是什么类型 golang中的map的key可以是很多种类型,比如bool,数字,string, 指针,channel 还可以是只包含前面几个类型的接口, 结构体, 数组 ****key通常用int, stri.原创 2022-02-05 00:45:27 · 495 阅读 · 0 评论 -
GO语言学习之路12
2022/02/03package mainimport "fmt"func sortB(arr *[5]int) { fmt.Println("arr1 = ", &arr[0]) fmt.Println("arr2 = ", &arr) fmt.Println("arr3 = ", (*arr)[0]) temp := 0 for i := 0; i < len(arr)-1; i++ { for j := 0; j < len(arr)-1-i.原创 2022-02-04 03:03:25 · 688 阅读 · 0 评论 -
GO语言学习之路11
2022/2/2package mainimport ( "fmt" "math/rand" "time")func test(arr *[3]int) { (*arr)[0] = 123}func test1(arr [4]int) {}//1.数组//1.1数组是存放多个同一类型数据 数组是go中是值类型,指向一个数据空间func main() { //1.1.1定义一个数组 //数组必须规定长度 否则就是切片 // var 数组名 [数组大小]数据类型.原创 2022-02-02 23:47:51 · 369 阅读 · 0 评论 -
GO语言学习之路10
2022/02/01package mainimport ( "fmt" "strconv" "strings")//1.字符串中常用的系统函数func main() { //*** 1.1 统计字符串的长度,按字节 len(str) str1 := "hello中国" //utf-8 ASCII字符占一个字节 一个汉字占三个字节 fmt.Println("str len = ", len(str1)) // 11 //*** 1.原创 2022-02-02 00:26:53 · 155 阅读 · 0 评论 -
GO语言学习之路9
2022/1/31package mainimport "fmt"//1.为什么需要defer//在函数中,经常需要创建资源,比如数据库连接,文件句柄,锁等,为了在函数执行完毕后//及时释放资源,提供defer(延时机制)//2.defer demofunc sum(n1 int, n2 int) int { //当执行到defer时,暂时不执行,会将defer后面的语句压入到独立栈中 //当函数执行完毕后,再从栈按照先入后出的方式出栈,执行 defer fmt.Println.原创 2022-01-31 19:12:49 · 458 阅读 · 0 评论 -
GO语言学习之路8
2022/01/30/*函数*********************************************************************/package mainimport "fmt"/*函数递归调用需要遵守的重要原则*///1.执行一个函数时,就创建一个新的受保护的独立空间(新函数栈)//2.函数的局部变量是独立的,不会相互影响//3.递归必须向递归的条件逼近,否则就是无限递归,死龟//4.当一个函数执行完毕或者遇到return,就会返回,遵守谁..原创 2022-01-31 01:19:52 · 291 阅读 · 0 评论 -
GO语言学习之路7
2022/01/051、函数 func 函数名(形参列表) (返回值列表) { 执行语句 return 返回值列表 } func cal(n1 float64, n2 float64, operator byte) float64 { } 2、包的本质就是创建不同的文件夹,来存放程序文件 go的每一个文件都是属于一个包的3、包的三大作用 (1)区分相同名字的函数、变量等标识符 (2)当程序.原创 2022-01-05 21:01:26 · 230 阅读 · 0 评论 -
GO语言学习之路6
2022/01/021、for循环基本语法 for循环的循环条件是一个返回布尔值的表达式(1) for 循环变量初始化; 循环条件; 循环变量迭代 { //循环执行语句 }(2) for 循环判断条件 { //循环执行语句 } Demo: j := 1 for j <= 10 { fmt.Println("hello, world!") j++ }(3).原创 2022-01-03 01:18:31 · 136 阅读 · 0 评论 -
GO语言学习之路5
2021/12/29p701、进制不用多讲2、原码、反码、补码(这里需要继续深入了解*****************标记) ===对于有符号的而言 (1)二进制的最高位是符号位:0表示整数, 1表示负数 1 ==》 0000 0001 -1 ==》1000 0001 (2)正数的原码、反码、补码都是一样的 (3)负数的反码 = 它的原码符号位不变,其他位取反 (4)负数的补码 = 它的反码+1 1 ==》 原码 0000 0001 反码 0000 0001 补码 00..原创 2021-12-30 10:07:02 · 146 阅读 · 0 评论 -
GO语言学习之路4
2021/12/281、如果变量名、函数名、常量名首字母大写,就可以被其他的包访问,如果首字母是小写,则只能在本包中使用。(必须)2、除法不会保留小数部分,只会保留整数部分,如果要保留小数部分,需要浮点数参与运算 demo: var n1 float32 = 10 / 4 //n1 = 2 var n1 float32 = 10.0 / 4 //n1 = 2.5 3、golang的自增自减只能当做一个独立语言使用。(强制性) 不能这样使用 : b := a++ 或.原创 2021-12-28 22:58:53 · 157 阅读 · 0 评论 -
GO语言学习之路3
2021/12/271、在go中,数据类型都有一个默认值,在go中又叫零值。 整形 0 浮点型 0 字符串 "" 布尔类型 false 2、golang在不同类型的变量之间赋值时需要显式转换,不会自动转换 表达式T(v):将值v转换为类型T 希望把i => float var i int32 = 100 var n1 float32 = float32(i) => int8 var i int32 = 100 var .原创 2021-12-27 23:44:17 · 172 阅读 · 0 评论 -
GO语言学习之路2
2021/12/261、如何在程序中查看某个变量的占用字节大小和数据类型var n1 int64 = 10fmt.Printf(" n1的类型是%T , n2占用的字节数是%d ", n1, unsafe.Sizeof(n1))2、golang 在保证程序正确运行下,尽量使用占用空间小的数据类型3、golang 的浮点类型默认声明为 float64 类型4、golang 没有专门的字符类型 存字符用 byte存储 golang 的字符串是由字节组成的 func main().原创 2021-12-26 23:35:47 · 306 阅读 · 0 评论 -
GO语言学习之路1
2021/12/251、go语言有自己的风格,函数括号必须带在后面而不能换行2、/t是tab符 /n是换行 /r是回车,不换行会覆盖原有字符3、一行不超过八十字符4、切换到f盘 cd /d f: (dos 命令)5、变量的声明和定义 var i int = 100 name := "levi" 相当于 var name = "levi" var n1 = 100 var n2 = 200 var name = "jack" 换一种写法.原创 2021-12-26 01:09:05 · 260 阅读 · 0 评论