![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GO
文章平均质量分 52
咔咔-
死磕MySql系列作者
展开
-
在Go中使用正则表达式
本文将带大家了解一下在Go中如何使用正则表达式一、演示案例在这个案例中声明了常量text然后使用了regexp这个包的regexp.Compile这个方法。这种方式是不确定用户输入的值是否符合匹配规则。当然也可以看到结果是返回了我们需要的数据。但是在一般情况下,如果确定了用户输入的内容是正确的是完全符合的就可以使用下方案例。在这个案例中可以看到regexp.MustCompile使用了这个方法,并且返回的值也是一样的。这个方法没有返回错误,但是在自己的内部方法进行了异常处理。根据注.原创 2020-12-29 11:48:20 · 1502 阅读 · 0 评论 -
用Go实现进制之前的转化
本文将会介绍使用Go对十进制和二进制之间的转换首先你要先明白我们常用的数字都是十进制的,二进制是只存在0和1的。那么接下来简单的聊一下关于十进制如何转换为二进制。方法一:短除法例如现在需要把23这个值转换为二进制,我们利用短除法进行计算。相信大家之前或多或少都了解一点进制转换,下图即是转换的过程。将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取将除得的余数,即换算为二进制数的结果。所以23转化为二进制就是10111,就是将所有的余数进行反转即可方案二:使用G.原创 2020-12-29 11:46:55 · 701 阅读 · 0 评论 -
用Go实现字符串的逆序
本文使用Go来实现字符串逆序这个功能,用最简单的话术让你理解附带在Go中debug的小技巧例如:Hello 转换为 olleH一、实现字符串的逆序在go中,字符串要根据索引获取值是需要转为字节的。接下来我们看一个实现代码代码应该都看的明白,下面咔咔用图解来帮助解释一下package mainimport ( "fmt")func stringReverse() { var str = "Hello" // 字符串转字节 var bytes []byte = []byte.原创 2020-07-17 09:45:20 · 2973 阅读 · 0 评论 -
解决Go升级到1.14后无法Debug
Debug对一个程序员是多么的重要,然后在升级了go1.14后,我的debug却使用不了了,这就很尴尬。遇到问题解决问题。这个问题估计在未来大多数人都会遇到,咔咔在学习过程中一直坚持使用最新版本。根据咔咔现在的这个标题去搜索,只有几篇文章解析,但是他们给解决方法我却实现不了,于是咔咔就在出一片文章,来对这个问题进行解析。给出的最多解决方法就是go get -u github.com/derekparker/delve/cmd/dlv执行这个命令,这个指令不知道什么原因在咔咔这里执行没有结果,也不下.原创 2020-07-15 10:33:41 · 1703 阅读 · 4 评论 -
【GO】实现一个简单的案例:家庭记账功能,并使用面向对象的思想进行封装
更多博文尽在专栏关于本博主的所有go博文里边的代码都可直接运行本篇文章只是非常简单的一个案例,会把代码使用面向对象的思想封装案例需求案例初始代码package mainimport "fmt"func main() { // 声明一个变量,保存用户输入的值 key := "" // 声明一个变量是否退出循环 loop := true // 定义账户余额 bala...原创 2020-04-06 14:03:24 · 709 阅读 · 0 评论 -
【GO】自定义包引用解决方案
在此我想对所谓的“大佬们”说劝你们善良,不要去伤害一个新手对编程的热情以下说的话不包括所有人哈!只是针对那些自以为是的“大佬们”!其实针对这个功能真的很简单,只是对于新手来说真的很不容易咔咔是在2020年4月5号晚上在一个群里看到一个Programmer被人嘲笑其实我们每个做编程的都是从新手开始的,然后一步一步的熟练自己对编程的认知但是对于新手问的问题,在你们看来。呀!那么简单...原创 2020-04-06 13:08:39 · 2511 阅读 · 8 评论 -
【GO】TCP交替通信
服务端源码package mainimport ( "fmt" "net" "os")/**处理异常*/func JtHandleError(err error, when string) { if err != nil { fmt.Println(when, "错误原因:", err) os.Exit(1) }}func main() { listene...原创 2020-03-27 14:58:02 · 574 阅读 · 0 评论 -
【GO】简单通信之TCP
tcp简单通信1 tcp初始服务端代码2 tcp初始客户端代码3 初始执行结果4. 多客户端对一个服务端博主微信欢迎交流初始代码没有加注释,初始代码只能跑一次。往下拉就会有代码注释 慢慢看哈。本文提供的源码都可以直接执行1 tcp初始服务端代码package mainimport ( "fmt" "net" "os")func TcpError(err error, w...原创 2020-03-26 18:54:11 · 886 阅读 · 0 评论 -
【GO】入门级网络通信,一看就懂
网络通信1. UDP解释简介个人简单理解UDP1-1 UDP写服务端1-2 UDP写客户端1-3 运行客户端和服务端的代码1-4 简单说明打印的数据来源2. 发起HTTP-GET请求3. 发起HTTP-POST请求博主微信欢迎交流1. UDP解释简介UDP(User Datagram Protocol),用户数据报协议,是OSI(Open System Interconnection,开放式...原创 2020-03-26 15:41:57 · 581 阅读 · 0 评论 -
【GO】反射实战案例
@[TOC](反射实现随意给一个商品的切片,将每件商品的所有属性信息输出到json文件)### 项目需求> 所有商品的都有共性:名字,价钱自行封装三种商品随意给一个商品的切片,将每件商品的所有属性信息输出到json文件使用反射实现### 案例源码```gopackage mainimport ( "encoding/json" "fmt" "os" ...原创 2020-03-25 16:40:47 · 644 阅读 · 1 评论 -
【GO】一文带你入门go的压力测试
压力测试1. 压力测试json文件的读写1-1项目目录1-2准备素材JsonUtil.go代码1-3准备JsonUtil_test.go代码1-4整包开始测试1-5测试结果1-6命令行测试 go test -v -bench .2. 压力测试生成cpu画像2-1使用终端生成性能分析文件go test -v -bench . -cpuprofile=fuck.out2-2在终端查看性能分析文件2-3...原创 2020-03-25 14:34:40 · 1222 阅读 · 0 评论 -
【GO】压力测试
压力测试步骤准备测试代码package mainimport "fmt"func main() { fmt.Println(GetFibonacci(6)) sum := GetNum(10) fmt.Println(sum) getRecursion := GetRecursion(10) fmt.Println(getRecursion) fbNum := GetFbN...原创 2020-03-24 17:47:09 · 1330 阅读 · 0 评论 -
【GO】单元测试
实现go的单元测试单元测试案例测试步骤假如我说我们现在已经封装好了一个test.go的文件,代码如下然后我们需要在创建一个test_test.go的文件代码如下文件目录结构用法测试博主微信欢迎交流单元测试案例测试步骤假如我说我们现在已经封装好了一个test.go的文件,代码如下package mainimport "fmt"func main() { fmt.Println(Ge...原创 2020-03-24 15:55:08 · 518 阅读 · 0 评论 -
【GO】简单递归案例实现求斐波那契数列和自然值求和
斐波那契数列先看一个案例就可以肯明确的看出其中的规律1 ,1 ,2 , 3 , 5 , 8 , 13…其实就是除了第0项和第1项返回的是1,其余的返回的都是前俩项之和用递归实现斐波那契数列package mainimport "fmt"func main() { for i := 0; i <= 10; i++ { fmt.Println(GetFibonacci(i...原创 2020-03-24 11:09:23 · 1314 阅读 · 0 评论 -
【GO】一篇文章带你看透反射的原理
反射是什么对于运行时内存中的任何一个对象,你不需要预先知道其类型是什么,也能访问其全部属性,调用其全部方法;反射的主要作用在于编写通用的框架;用静态类型interface{}保存一个值,通过调用TypeOf获取其动态类型信息,该函数返回一个Type类型值。调用ValueOf函数返回一个Value类型值,该值代表运行时的数据。Zero接受一个Type类型参数并返回一个代表该类型零值的Valu...原创 2020-03-23 18:06:18 · 955 阅读 · 0 评论 -
【GO】panic: reflect.Value.Interface: cannot return value obtained from unexported field or method
错误翻译理解不能返回字段或者方法的值报错代码定义俩个结构体,People 和 PeopleParentpackage mainimport ( "fmt" "reflect")type PeopleParent struct { kaka string}type People struct { PeopleParent name string age int...原创 2020-03-23 15:57:19 · 3743 阅读 · 0 评论 -
【GO】恐慌处理
咔咔博客恐慌处理在PHP中加入我们有一个程序直接报错了,那么程序就有可能直接死了。但是在go里,我们可以简单地处理一下,就会继续执行剩余的程序演示一个错误使用的案例这是演示的一个错误的案例,程序执行到if判断就会执行程序恐慌。但是没有继续执行恐慌之后的程序这个原因简单的思考一下就明白跟着案例我们缕一遍思路首先程序会先运行 输入咔咔博客地址这一步然后进行判断用户输入的与定义的值是...原创 2020-03-22 00:00:34 · 642 阅读 · 0 评论 -
【GO】json文件解码为map和结构体
咔咔博客之json文件解码为map和结构体【GO】50 编码map为json文件说了map转json文件案例:json转为mappackage mainimport ( "encoding/json" "fmt" "os")/**json解码为go*/func main() { file, e := os.OpenFile("d:/kaka.json", os.O_...原创 2020-03-22 00:00:11 · 1101 阅读 · 0 评论 -
【GO】编码map为json文件
咔咔博客之编码map为json文件功能就是把map编码为json文件、其实这个功能点我们现在写的项目就在用。但是用PHP写的,显然可以感觉到go的语法和语言还是很清晰的案例package mainimport ( "encoding/json" "fmt" "os")/**map编码为json文件*/func main() { mMap := make(map[st...原创 2020-03-22 00:00:00 · 852 阅读 · 0 评论 -
【GO】json转map、切片、结构体
咔咔博客之json转map、切片、结构体结构体转jsonmap转json切片转json在上面三个转json使用的是json_Marshal.也就是序列化的过程,那么反序列的函数json.Unmarshal()json转map/**json转map*/func main3() { jsonStr := `{"name":"咔咔","age":20,"address":["fan...原创 2020-03-21 23:59:46 · 3070 阅读 · 0 评论 -
【GO】切片转json
咔咔博客之切片转json在结构体转json和map转json中我们都说了一个函数那就是json_Marshal函数。同样这个函数也可以对切片进行转json案例func main() { strings := []string{"咔咔博客", "咔咔手赚网"} bytes, e := json.Marshal(strings) if e != nil { fmt.Println("...原创 2020-03-21 23:59:35 · 4837 阅读 · 0 评论 -
【GO】map转json
咔咔博客之map转json跟结构体转json一样都使用的是json.Marshal()方法 最后需要就是把字节转为字符串使用string即可案例func main() { // 定义了interface 后边就可以跟任意类型了 mMap := make(map[string]interface{}) mMap["博客地址"] = "blog.fangkang.top" mMap[...原创 2020-03-21 23:59:24 · 1461 阅读 · 0 评论 -
【GO】JSON:结构体转json
咔咔博客之结构体转json在这一节我们将会介绍几个新的知识点interface{}init()案例在这里会发现我们的类型是打印出来了,但是没有值,这是怎么个回事那我们在来看一下这个案例发现这个时候就会把值打印出来了,并且是一个json那么上边那个案例为什么没哟打印出来呢!那是因为在结构体里边定义的属性如果是首写字母是小写的话就代表的是私有属性。只有改变为大写后,别的方法才可...原创 2020-03-21 23:59:10 · 3046 阅读 · 1 评论 -
【GO】文件读写:文件拷贝
咔咔博客之文件拷贝拷贝会有几种方式,下面咱们一一讲解。最简单的拷贝ioutil方式当我们看到ioutil这个方法时就直接反应出来这个是最简单的方式。小的文件可以这样使用,但是大的问文件还是不要用这种方式来处理了/**最简单的copy案例*/func main() { bytes, _ := ioutil.ReadFile("d:/kaka.txt") err := iouti...原创 2020-03-21 23:58:15 · 542 阅读 · 0 评论 -
【GO】文件读写:判断文件是否存在
咔咔博客之判断文件是否存在很简单写一个简单的案例即可案例案例总结在之前的案例已经学习过了go的函数,那么在这里就简单的使用一下代码还是需要多写,咔咔之前是写PHP的,现在开始go发现go的语法很美啊!对go已经上瘾了这个案例很是简单,主要就是一个函数的返回值,在函数的后边可以定义返回值,也可以不用定义,只需要定义返回类型也行。然后在函数内部在自己定义返回值fileInfo不管是在打...原创 2020-03-21 23:57:57 · 2263 阅读 · 0 评论 -
【GO】关于读取文件时少了最后一行问题
问题使用这个方法实现会发现,最后一行的数据没有了。于是更改一下方案。这个方案是根据教程撸的,但是出现了问题,先知道下面的解决方案。这个问题在后边探讨。现在没有实际的应用环境,也摸不到问题的点出现在哪其实在学习的过程中,我们没有必要纠结一个点,咔咔的经验是,除非当日工作需要是不会对一个难点进行死磕的。慢慢的根据自己的知识提升会有更好的方案取而代之,或者问题的解决思路func main() {...原创 2020-03-21 23:57:32 · 1724 阅读 · 0 评论 -
【GO】文件读写:打开关闭+打开模式+文件权限+文件读取
咔咔博客之文件打开与关闭案例文件的操作使用os包package mainimport ( "fmt" "os" "time")func main() { file, e := os.Open("D:/kaka.txt") if e != nil { fmt.Println("文件打开失败") } else { fmt.Println("文件打开成功") }...原创 2020-03-21 23:57:09 · 2390 阅读 · 0 评论 -
【GO】面向对象:多态之类型断言
咔咔博客之面向对象:多态的类型断言在面向对象:多态这一节最后没有进行类型断言,也就是类型判断。那么在这篇文章中就简单的介绍一下案例案例总结在进行类型断言会有俩种方式第一种则是switch第二种就是if判断switch是使用类型来判断 也就是s.(type)if判断是把指针跟定义的值判断代码package mainimport ( "fmt")// 定义工人...原创 2020-03-21 23:56:44 · 593 阅读 · 0 评论 -
【GO】面向对象:多态
咔咔博客之多态多态是指,一个父类接口可以拥有多种子类实现形态这些子类形态之间有相同点,那就是它们都实现了父类接口中的方法不同点则是大家对父类接口方法的实现方式各不相同,演绎何为千姿百态代码地址https://github.com/fangkang7/goLearn案例定义父类接口Worker// 定义工人接口type Worker interface { // 每天工作多...原创 2020-03-21 23:56:17 · 593 阅读 · 0 评论 -
【GO】面向对象:继承性
咔咔博客之继承性继承的意义在于低成本地扩展和改造原有代码首先,子类一行代码即可拥有父类的全部成员(属性和方法)继承的目的,在于扩展和改造父类扩展,是指子类发展出自己独有的新属性和新方法,以适应自身需求改造,是指子类覆写和覆盖父类成员(属性和方法),以适应自身需求代码地址https://github.com/fangkang7/goLearn案例首先我们需要定义父级的结构体和方...原创 2020-03-21 23:56:03 · 529 阅读 · 0 评论 -
【GO】面向对象:封装性
咔咔博客之面向对象首先我们需要明确一个概念那就是什么是面向对象面向对象简称OOP,是一种计算机编程架构,使用面向对象编程可以实现代码的重用性,灵活性,扩展性。面向对象符合人类看待事物的一般规律。使其代码更简洁,更容易维护,并且具有更强的重用性在PHP中面向对象的三大特性:封装、继承、多态当然在go中也是一样的在PHP中我们有类 但是在go使用的是结构体基础案例在之前我们所有的案例...原创 2020-03-21 23:55:43 · 547 阅读 · 0 评论 -
【GO】文件读写:文件写入
咔咔博客之文件写入不管文件的写入还是读取都是要打开一个文件这部分的操作不管在哪都是必不可少的案例关于之前说的打开模式这是真正的打开模式,在实际开发过程中使用的//覆写模式 //file, err := os.OpenFile("d:/兄弟连.txt", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0754) //追加模式 //file, err ...原创 2020-03-20 20:10:20 · 908 阅读 · 0 评论 -
【Goland】代码自动换行
方法博主微信欢迎交流原创 2020-03-20 20:10:04 · 6172 阅读 · 2 评论 -
【GO】标准库:strings
咔咔博客之标准库strings,这个不会说的过多,以后项目上用到得话在回头来查。就算现在记着了,过几天也会忘记了,所以在这里就不浪费时间了案例在这个案例中,我用PHP的经验在这里挑选了几个常用的接口。每个库的数据都是相当的大的,全部学习一遍没那个必要。了解一点常用的,在项目有需要时反过来在找就行在这个库里最常用的就是判断一个字符串是否在另一个字符串中还有一个就是把字符串根据某一规则...原创 2020-03-20 20:09:47 · 616 阅读 · 0 评论 -
【GO】函数:闭包函数
代码https://github.com/fangkang7/goLearn案例先来看一个闭包的案例解释一下为什么要这样写。跟这代码来,一开是我们定义了一个string的切片然后我们想随着索引的增加来获取不同的切片值那么就需要定义很多个全局变量来操作那么改为闭包的写法后就只需要写一个闭包函数然后就可以在任意地方使用闭包就是返回函数的函数我们可以看到闭包的使用,注意我圈起来的...原创 2020-03-20 20:09:34 · 1413 阅读 · 0 评论 -
【GO】函数:匿名函数
代码匿名函数的应用场景一次性的调用有必要的代码封装应用案例:defer 和 godefer的应用场景defer是一个延迟执行的指令。这个在之前的defer延迟执行学习过了,不能忘记哦!defer会在所有程序运行结束后执行,假如有多个defer谁在最后谁先执行这个应用场景就是延迟执行一个匿名函数 ,这个函数需要进行简单的封装,但是又不进行复用,所有就直接使用匿名函数即可go的应用...原创 2020-03-20 20:09:11 · 841 阅读 · 0 评论 -
【GO】函数返回值为映射和切片
代码地址https://github.com/fangkang7/goLearn.git案例案例解释不管是返回切片还是返回映射,函数的参数类型都是一个切片切片需要用时append来进行扩容映射则直接键值的方式即可源码package mainimport "fmt"func main() { retMap := isWudebeishu(5, 16, 25, 30, ...原创 2020-03-20 20:08:46 · 4093 阅读 · 0 评论 -
【GO】结构体的值传递VS引用传递
代码值传递案例我们先定义了一个结构体 然后传入showPerson1这个方法里然后在showPerson1这个方法里修改了name的值打印结果发现是没有改变的,这是因为值传递时传递的是结构体的副本,而不是真身我们在来打印一下结构的地址和传到showPerson1这个方法的地址会发现这俩个地址都不相同,所以在showPerson1这个方法里边修改结构体的值是修改不成功的引用传值案...原创 2020-03-18 18:38:30 · 6437 阅读 · 0 评论 -
【GO】复合类型:创建结构体对象的几种方式
代码https://github.com/fangkang7/goLearn.git案例在上一节中我们可以直接在函数内部创建结构体如图在这一节我们将在使用三种方式来创建结构体对象package mainimport "fmt"type Person struct { name string age int aiaho []string}func main(...原创 2020-03-18 18:38:04 · 2536 阅读 · 0 评论 -
【GO】复合类型:封装结构体
代码https://github.com/fangkang7/goLearn.git案例package mainimport "fmt"func main() { type Person struct { name string age int sex bool like []string } p := Person{} p.name = "咔咔" p...原创 2020-03-18 18:37:27 · 785 阅读 · 0 评论