go语言
hodgeKou
这个作者很懒,什么都没留下…
展开
-
go设计模式思维导图
go设计模式思维导图原创 2020-07-18 14:18:12 · 528 阅读 · 0 评论 -
Go 语言实现 23 种设计模式适配器
Go 语言实现 23 种设计模式适配器将一个类型的接口转换成客户希望的另外一个接口,使原本由于接口不兼容而不能一起工作的类可以一起工作。Example_onepackage mainimport "fmt"// Adaptee 适配者type MyLegacyPrinter struct{} func (l *MyLegacyPrinter) Print(s string) (newMsg string) { newMsg = fmt.Sprintf("Legacy Printer:原创 2020-07-18 14:17:13 · 296 阅读 · 0 评论 -
Go 语言实现 23 种设计模式 单例模式
Go 语言实现 23 种设计模式 单例模式单例模式单例模式是一种常用的软件设计模式,在使用过程中,单例对象的类只有一个实例。使用单例模式,1 可以节省内存等资源,例如windows操作系统的资源管理器只有一个就够了。2 方便配置管理,例如,服务器的配置信息存放在一个文件中,配置信息由一个单例实例统一读取,进场中的其他对象通过这个单例实例获取配置信息。实例1下面这段代码有什么问题,从多线程角度思考,就会发现下面的代码是非线程安全的,比如有两个线程都在调用NewInstance1函数,线程A在执行到if原创 2020-07-18 13:52:43 · 690 阅读 · 0 评论 -
gorm踩的坑
gorm的那些坑1. db.SingularTable(true)在Gorm中,表名是结构体名的复数形式,列名是字段名的蛇形小写。即,如果有一个user表,那么如果你定义的结构体名为:User,gorm会默认表名为users而不是user。db.SingularTable(true) 让grom转义struct名字的时候不用加上s2. Rows.Next() 需要关闭user := new(User)rows, err := engine.Where("id >?", 1).Rows(us原创 2020-07-09 19:16:25 · 4275 阅读 · 0 评论 -
Go 语言实现 23 种设计模式(修饰器)
修饰器修饰器模式就是在不改变对象内部结构的情况下,动态扩展它的功能。Example_onetype Object func(string) stringfunc Decorate(fn Object) Object { return func(base string) string { ret := fn(base) ret = ret + " and Tshirt" return ret }}func Dressing(cloth string) string { ret原创 2020-07-18 13:07:16 · 279 阅读 · 0 评论 -
goland中grpc的安装
安装 gRPC网络环境允许的同学安装 gRPC 非常方便,直接执行以下命令即可安装完成:go get -u -v google.golang.org/grpc为什么已经翻墙了可是goland还是不行?Fetching https://google.golang.org/grpc?go-get=1https fetch failed: Get https://google.golang.org/grpc?go-get=1: dial tcp 216.239.37.1:443: i/o timeou原创 2020-06-23 09:19:50 · 961 阅读 · 0 评论 -
11. 盛最多水的容器 golang
11. 盛最多水的容器 (一道比较特殊的题)之所以说特殊是因为这个题用动态规划反而比暴力破解法还复杂。这种容器的题,就是前后指针方向。尽量别考虑别的思路。11. 盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x ...原创 2020-04-18 12:10:03 · 390 阅读 · 0 评论 -
golang json判断类型
json怎么判断类型 if q.Number == '0' { fmt.Println("q.Number is string!Pass" ) } if q.Number == 0 { fmt.Println("q.Number is not string!Wrong" ) }看上去很粗暴但是很实用,并没有查到满意的方法,待补充。package mainimport ( ...原创 2020-04-15 19:01:16 · 1787 阅读 · 0 评论 -
golang json例子
Example1package mainimport ( "encoding/json" "fmt")type Product struct { Name string ProductID int64 Number int Price float64 IsOnSale bool}func main() { p := &Product...原创 2020-04-15 18:59:28 · 182 阅读 · 0 评论 -
关于golang的append函数的踩坑
从LeetCode第26题产生的疑问这篇文章里面提到了关于在函数内部修改数据的情况。但是LeetCode22题中发现append无法在传送变量中进行append。测试代码输出结果[123 456 7] //使用test函数append数字8,但是并没有修改原数据的值[1 2 3] //同理,只可以在main函数append成功[1 2 4] //但是可以修改数据的值,append失...原创 2020-03-04 14:37:19 · 4373 阅读 · 1 评论 -
golang并发官方示例
文章目录GoroutinesChannelsBuffered ChannelsRange and CloseSelectfatal error: all goroutines are asleep - deadlock!Default Selectionsync.MutexExercise: Web Crawler官方网站GoroutinesA goroutine is a lightwei...原创 2020-02-24 18:22:31 · 647 阅读 · 0 评论 -
golang plugin模块的使用
共享库工具Currently plugins are only supported on Linux and macOS通过plugin我们可以很方便的对于不同功能加载相应的模块并调用相关的模块;也可以针对不同语言(英文、汉语、德语……)加载不同的语言so文件,进行不同的输出;还可以把编译出的文件给不同的编程语言用go plugin的使用方法使用加载plugin基本流程加载...原创 2020-02-22 13:56:10 · 1662 阅读 · 0 评论 -
70. 爬楼梯 golang 斐波那契数列
题目假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 ...原创 2020-02-12 14:11:39 · 206 阅读 · 0 评论 -
402. 移掉K位数字 golang
测试用例示例 2 :输入: num = “10200”, k = 1输出: “200”解释: 移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前导零。示例 3 :输入: num = “10”, k = 2输出: “0”解释: 从原数字移除所有的数字,剩余为空就是0。Me如果下一个元素比当前栈元素小,移除当前元素,把下一个元素入栈10200k =2栈:1k=1...原创 2020-02-10 18:24:57 · 191 阅读 · 0 评论 -
go有没有引用类型
没有引用类型go没有引用类型在函数内部修改变量?指针类型测试代码如下package mainimport "fmt"func add(a int) { fmt.Println("a int") fmt.Printf("%d\n", &a) a = 1}func add2(a *int) { fmt.Println("a *int")...原创 2020-02-05 15:29:02 · 427 阅读 · 1 评论 -
golang实现聊天室(五)
golang实现聊天室(四)serverpackage mainimport ( "fmt" "log" "math/rand" "net")type Client_list struct { list map[net.Conn]string}func main() { client_list := Client_list{make(map[net.Conn]st...原创 2020-01-28 13:28:45 · 260 阅读 · 0 评论 -
golang实现聊天室(四)
golang实现聊天室(四)服务端给已经建立连接的客户端发送消息client1func main() { var conn, err = net.DialTimeout("tcp", "127.0.0.1:6888", 30*time.Second) if err != nil { log.Fatal("conn error") } for { conn.Write([]...原创 2020-01-28 11:59:56 · 370 阅读 · 0 评论 -
golang实现聊天室(三)
golang实现聊天室(三)实现多个客户端同时给服务端发送消息,服务端接受并打印出来client1func main() { var conn, err = net.DialTimeout("tcp", "127.0.0.1:5888", 30*time.Second) if err != nil { log.Fatal("conn error") } for { co...原创 2020-01-28 10:24:47 · 190 阅读 · 0 评论 -
golang实现聊天室(二)
golang实现聊天室(二)上一篇完成了服务端启动监听连接,客户端建立连接,发一个消息,断开连接。服务端收一下,然后服务端打印。客户端可以一直发送消息,服务端不停接收并打印clientfunc main() { var conn, err = net.DialTimeout("tcp", "127.0.0.1:8888", 30*time.Second) if err != nil...原创 2020-01-27 22:51:08 · 144 阅读 · 0 评论 -
golang实现聊天室(一)
一个简单的tcp通讯客户端发一下,服务端收一下打印客户端func main() { var conn, err = net.DialTimeout("tcp", "127.0.0.1:8888", 30*time.Second) if err != nil { return } conn.Write([]byte("string not ")) conn.Close()...原创 2020-01-27 22:37:05 · 487 阅读 · 0 评论 -
go语言实现2048小游戏(完整代码)
文章目录2048逻辑分析完整代码2048逻辑分析2048小游戏的基本操作是上下左右,每个操作的逻辑都不太一样!这个时候,通过数组旋转的方式。将所有操作转换为向上的操作git地址https://gitee.com/hodgekou/golang.gitpackage mainimport ( "fmt")type arr [4][4]intfunc (t *arr)...原创 2019-04-10 20:14:56 · 4546 阅读 · 0 评论 -
go语言如何连接数据库
文章目录安装驱动连接数据库查询表结果插入结果删除结果安装驱动go get github.com/go-sql-driver/mysqlimport ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql")连接数据库 //用户名:密码^@tcp(地址:3306)/数据库 db, err :=...原创 2019-06-01 16:46:59 · 8831 阅读 · 1 评论 -
Go语言爬虫项目将结果写入MySql数据库
来源于Google资深工程师深度讲解Go语言package mainimport ( "fmt" "io/ioutil" "net/http")const url = "http://www.zhenai.com/zhenghun"func main() { //发送get请求 resp, err := http.Get(url) if err != nil {...原创 2019-06-01 18:03:13 · 1742 阅读 · 0 评论 -
go语言学习路径
个人记录go语言如何连接数据库:增删改查Go语言爬虫项目将结果写入MySql数据库原创 2019-06-01 18:05:59 · 446 阅读 · 0 评论 -
go语言急速入门
Go 语言极速入门1 - 环境搭建与最简姿势Go 语言极速入门2 - 基础语法Go 语言极速入门3 - 内建容器Go 语言极速入门4 - 面向对象Go 语言极速入门5 - 面向接口Go 语言极速入门6 - 闭包Go 语言极速入门7 - 资源管理与错误处理Go 语言极速入门8 - GoroutineGo 语言极速入门9 - ChannelGo 语言极速入门10 - 并发模式之资源池...原创 2019-06-03 23:51:25 · 547 阅读 · 0 评论 -
go语言扫描四位数可用域名
域名注册查询接口(API)的说明原文出处域名查询接口采用HTTP,POST,GET协议:调用URL:http://panda.www.net.cn/cgi-bin/check.cgi参数名称:area_domain 值为标准域名,例:hichina.com调用举例:http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=hichina...原创 2019-06-04 16:40:37 · 333 阅读 · 0 评论