![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Golang
文章平均质量分 70
猫轻王
程序不是秃头的专利,但是,他属于秃头。
展开
-
Xorm 使用手册,增删改查之查
学习orm框架也就是学习数据库的过程,orm的步骤也就是原生sql的步骤,我们想要融会贯通必须将它与原生sql联系上,我们不是在学一个独特的orm,而是在学数据库的种种操作,这换成另外的任何的orm框架其实底层没有区别,操作也是大同小异。我们能做到的其实也就是努力学好sql,orm其实只是用来减少我们写sql的时间罢了。原创 2022-09-24 22:15:00 · 1269 阅读 · 0 评论 -
Golang 笔试面试学习第三天之make
make在生产环境其实使用的很多,当切片在不初始化时都是nil,而非我们通常意义上的空数组 []原创 2022-09-24 14:57:00 · 1103 阅读 · 0 评论 -
Xorm 使用手册,面向工作学习
学习orm框架也就是学习数据库的过程,每一个操作每一个需求都是数据库的需求,我们学习Xorm的过程中也在不断学习着数据库的相关操作。熟练掌握orm框架的时候,自然也就熟练掌握了数据库的操作,增删改查也是不变的真理,但是我们需要不断提高自己,避免沦为 "crud boy"。原创 2022-08-24 23:35:47 · 923 阅读 · 4 评论 -
Golang 笔试面试学习第二天之range
for range 时,由于此时都是进行地址的传递,直到map结束时,所有的变量取得都是同一个 val 的地址,尽管该地址上的值在range过程中不断被替换成新的元素,但地址却不会更换。直到最终打印时,取得同一个地址的值,自然都是最后一个元素的值。每次遍历完,生成一个新变量,那么变量自然地址是新的,而赋值之后也是每次遍历的值,不会因为地址的相同而被覆盖。自然 m[key] 每次值都是新变量的地址,也就不会出现错误。原创 2022-08-24 22:39:28 · 393 阅读 · 0 评论 -
Golang 笔试面试学习第一天之defer
通过两个例子可以轻松了解在Golang中defer的使用方式,defer在我们工作中的重要性不言而喻。由于错误捕获与在程序运行后执行的逻辑,非常适合我们的编写中间与进行自定义的错误处理,或者将程序依次上抛进行捕获。原创 2022-08-23 23:19:33 · 354 阅读 · 3 评论 -
Golang新版本 Go1.19新的fmt方法
Go(又称 Golang)是谷歌开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,号称“21 世纪的 C 语言”,但是由于语言诞生时间较为短暂,部分功能参数、生态等等都有着不足,每一个版本自然也都很重要。原创 2022-08-23 10:00:00 · 1318 阅读 · 1 评论 -
Golang GMP调度模型特性,通过P解耦GM
GMP调度模型设计的核心思想是用较少的线程完成很多Goroutine 的执行,从语言级别支持并发,轻量级协程 Goroutine 。由于P的存在,使得GM,协程也就是用户态线程与内核态线程实现了解耦,当遇到G的阻塞时,不会影响到其他G的使用,P会选择其他M来实现继续执行,提升并发性能。原创 2022-05-15 22:23:40 · 469 阅读 · 2 评论 -
Golang 从零开始实现多人聊天室(一)服务端监听
从零开始实现一个基于Go的多人在线聊天室,功能包括:单聊、群聊、昵称、上下线通知、聊天日志等等,该博文简单实现服务端的端口监听,下篇博文将会讲解客户端的代码,将两端真正连接后进行通信。·原创 2022-05-10 11:00:00 · 1114 阅读 · 8 评论 -
GolangError指南(三) package golang_cat is not in GOROOT
Golang 包的错误在模块的诞生后已然少了很多,但也会存在一部分因为模块的出现导致的错误,这个错误也就是其中之一,我们需要不断总结不断成长,与君共勉。原创 2022-03-24 23:26:19 · 5056 阅读 · 2 评论 -
Golang极速入门课一,我与Golang初相见
Golang的不断普及,需求不断增加,也就迎来了Go语言生态环境的不太完善,尽管使用者仍然不是所有语言中最多的,但我相信Go语言的发展将在几年后或更短的时间迎来新的机遇,希望学习的你也能坚持下来。原创 2022-03-25 11:00:00 · 1227 阅读 · 53 评论 -
Golang Goroutine和线程的区别
Golang 通过复杂的协程操作来实现我们的并发需求,golang是用户线程与系统线程的对应关系是多对多,既能利用多核cpu资源,也能尽可能减少上下文切换成本,代价是go需要实现复杂的goroutine调度机制。相比于N:1时所有用户线程对应1个系统线程,无法利用多核cpu;1:1时1个用户线程对应一个系统线程,上下文切换成本高。通过复杂的调度实现N:N时,即能利用多核cpu资源,也能尽可能减少上下文切换成本,成为Go语言最为人知的特点,天生支持高并发与高效。原创 2022-03-22 22:25:14 · 962 阅读 · 40 评论 -
Golang defer 中变量的赋值,return了也给你改了
通过以上来了解Golang中defer 的使用, 在Go语言中,可以使用关键字defer向函数注册退出调用,即主函数退出时,defer后的函数才被调用。defer语句的作用是不管程序是否出现异常,均在函数退出时自动执行相关代码。在函数中,经常需要创建资源(比如:数据库连接、文件句柄、锁等) ,通过defer在函数执行完毕后执行,及时的释放资源。原创 2022-03-20 11:00:00 · 1402 阅读 · 17 评论 -
Golang 错误捕获 Panic 与 Recover
通过以上来简单熟悉Golang 与其他语言截然不同的错误处理形式,由于其他语言开发者经常将异常与控制结构混在一起,这会很容易使得代码变得混乱。开发者也很容易滥用异常,甚至一个小小的错误都抛出一个异常。这在Golang中不被允许,Go语言也就不支持传统的 try…catch…finally 这种异常,通过新的 defer panic recover 来进行错误处理。原创 2022-03-19 14:09:08 · 2336 阅读 · 25 评论 -
Golang 必知必会Go Mod命令
通过以上可以轻松了解在Golang中go mod的使用方式。Go mod提供了一系列操作modules的命令,所有的go命令中现在已经内置了对module的支持,而不仅仅是go mod命令。例如使用go get时,会经常自动在后台添加、移除、升级、降级依赖包版本。原创 2022-03-15 13:00:00 · 23998 阅读 · 15 评论 -
GolangError指南(二) first argument to append must be slice; have *[]int
Golang 通过make和new来分配内存的,但是它们之间还是有些区别的。简单来说,new只是分配内存,不初始化内存; 而make即分配又初始化内存。所谓的初始化就是给类型赋初值。原创 2022-03-11 11:00:00 · 1379 阅读 · 34 评论 -
GolangError指南(一) cannot assign to struct field list[“fruit“].Name in map
Golang 通过指针操作来简便我们的使用习惯与内存占用情况,当我们发现无法修改值或者需要多次修改同一个字段时,不妨想想指针能不能达到我们的要求。原创 2022-03-09 23:04:43 · 830 阅读 · 30 评论 -
Golang 文件读取与获取扩展名
通过以上两个例子可以轻松了解在Golang中文件的的简单操作。原创 2022-03-07 19:00:00 · 4055 阅读 · 5 评论 -
经典面试题【蚂蚁过杆】Golang 代码详解
经典面试题【蚂蚁过杆】Golang 代码详解面试题库【蚂蚁过杆】文章目录经典面试题【蚂蚁过杆】Golang 代码详解一、常见题目二、详细思路1.已知条件2.详细代码三、结果总结一、常见题目有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。求全部下杆原创 2022-03-08 11:00:00 · 559 阅读 · 59 评论 -
Golang 字符串处理简单小技巧
一、如何修改字符串中的一个字符?二、如何获取字符串的子串?三、使用for或者for-rang遍历字符串?四、如何获取一个字符串的长度?(字符数,字节数)五、如何更好的连接字符串?原创 2022-03-02 21:48:00 · 1290 阅读 · 12 评论 -
Golang 小数操作之判断几位小数点与四舍五入
Golang 小数操作之判断几位小数点与四舍五入。当官方包不足以满足我们的需要时,我们需要去寻找一个可以满足需要的方法来实现想要的功能,也将会在之后努力通过官方包实现四舍五入,让自己拓展知识面。原创 2022-02-28 22:33:58 · 2678 阅读 · 66 评论 -
Golang []int []string 互转与判断字符是否在数组中
通过简单的代码来实现 Python 中 in 的功能,从而简便我们的操作与减少我们的工作量、工作时间原创 2022-02-27 08:00:00 · 1181 阅读 · 4 评论 -
Golang 数组的简单操作之合并数组与删除某个索引的值
Golang 数组的简单操作之合并数组与删除某个索引的值,轻松了解在Golang中接口数组的简单方法,来减少平时工作中重复造轮子的时间。原创 2022-02-26 20:00:00 · 4305 阅读 · 14 评论 -
Golang 轻松读懂数组和切片
切片的初始化与追加slice拼接问题原创 2022-02-18 23:29:43 · 651 阅读 · 40 评论 -
Golang 处理浮点数遇到的精度问题,不使用decimal会出大问题
在工作中,我们就需要更换运算方式。我们需要尽量选择Decimal,否则如果使用 Float 出现精度问题之后,到那时再更换方法,既费时又费力,能刚开始就解决,何乐而不为呢。原创 2022-02-17 23:03:29 · 6355 阅读 · 36 评论 -
Golang Map 中的 key 为什么是无序的
不要依赖map遍历时返回的key顺序,采用随机选择遍历起始位置的方式使得遍历时返回是乱序的。如果想得到有序键值,请依靠有序切片进行访问来得到有效的有序 Map原创 2022-02-15 23:08:48 · 1544 阅读 · 49 评论 -
Golang 字符串(string)与字节数组([]byte)一行代码互转
两个方法来记住字节数组与字符串互转,简单直接,实用性拉满。原创 2022-02-14 23:40:40 · 16076 阅读 · 36 评论 -
Golang Slice切片如何扩容
如果切片的容量小于1024个元素,那么扩容的时候slice的cap就乘以2;一旦元素个数超过1024个元素,增长因子就变成1.25,即每次增加原来容量的四分之一。原创 2022-02-14 23:30:31 · 4582 阅读 · 1 评论 -
Golang 尾递归和递归比起来优势在哪?
尾递归函数,部分IDE将会识别并进行优化,为尾递归分配更少的堆栈,相比递归来说减少了很多不必要的内存占用与降低了堆栈溢出风险。由于初态与最终态的形态相差不大,程序的堆栈不会进行大量占用与内存消耗,相比递归来说风险与实用性都大大提高。原创 2022-02-11 22:46:01 · 522 阅读 · 1 评论 -
Golang 包的导入 单个 多个 点 别名 下划线
使用包的目的是为了更加方便的管理源码。Golang的理念是用文件夹来管理(或者叫约束)同种类型或同种功能的源码。不同的包导入方式在工作中有着不同的作用,我们需要学习并灵活使用,这将是我们学习 Golang 过程中永远会使用到的一些方法。原创 2022-02-11 20:28:36 · 513 阅读 · 0 评论 -
Golang Strings 官方包常用方法,学会这些够用了
1.判断是否以某字符串打头/结尾2.字符串分割3.返回子串索引4.字符串连接5.字符串转化为大小写6.统计某个字符在字符串出现的次数7.判断字符串的包含关系8.字符串替换原创 2022-02-11 20:09:14 · 1206 阅读 · 0 评论 -
Golang 斐波那契数列 递归,非递归与尾递归
Golang 斐波那契数列最美写法尾递归原创 2022-02-10 22:37:08 · 715 阅读 · 0 评论 -
Golang 使用For循环中赋值切片,切片内数值相同
当切片Slice 循环赋值到另一个切片 res 后,res 切片内数值一样,可能是由于取地址的问题。原创 2022-02-10 21:11:53 · 2948 阅读 · 0 评论 -
Golang 八大排序之选择排序
所谓排序算法,即通过特定的算法因式将一组或多组数据按照既定模式进行重新排序。这也是我们学习算法的第一步,我们的第一步就从选择排序开始。原创 2022-02-09 22:48:22 · 429 阅读 · 0 评论 -
Golang 将 Map 的键值对调
键值的简单调换是熟悉Golang Map 数据类型的前奏。原创 2022-02-09 21:28:23 · 1070 阅读 · 0 评论 -
Golang 正则表达式判断手机号或身份证
通过两个例子可以轻松了解在Golang中正则的使用方式。原创 2022-02-08 22:26:33 · 4327 阅读 · 1 评论