Ebiten-纯Golang开发的跨平台游戏引擎

Go语言不是让你玩的啊喂! 昨天跟好基友聊开发的事,他说他等着闲下来的时候就用PYGame写个像那个最近挺火的"文X游X"一样的游戏.(没收广告费啊!) 基友突然嘲笑我:"你家Go是不是只能玩黑底白字啊?" 这能忍吗?为了给广大Golang开发者报仇,我决定去问问度娘. 不编故事了,我们直接进入正题 ... »

golang sync.noCopy 类型 —— 初探 copylocks 与 empty struct

问题引入 学习golang(v1.16)的 WaitGroup 代码时,看到了一处奇怪的用法,见下方类型定义: type WaitGroup struct { noCopy noCopy ... } 这里,有个奇怪的“noCopy”类型,顾名思义,这个应该是某种“不可复制”的意思。下边是noCopy ... »

leozmm

golang 仿知乎 中文验证码 倒立 源码

原创,转载请注明出处! 最开始用图形来模仿文字进行各种角度的倒立和排列,后来切换为文字后,有很多问题。总结如下: 1、程序在画图形和画文字方面不一样,图形的是从原点开始(0,0),而文字则从文字的基线 »

Denny_Yang

golang的面向对象实现

GoLang的面向对象 通过golang实现面向对象的过程, 以及golang的继承关系 定义了动物, 定义了鸟类,鱼类, 最后的对象是 燕子, Nimo »

gpan

Mac os安装golang开发环境

为了能够愉快地进行golang编程,我们需要安装以下几样东西: + 包管理Homebrew + 语言环境golang + 版本管理git + 虚拟器docker + 编译器Goland 我将按照这个顺 »

laolieren

关于Golang的学习路线

基础 安装golang环境 Golang基础,流程控制,函数,方法,面向对象 网络编程(自己做一个简单的tcp的聊天室,websocket,http,命令行工具) 并发(可以看一下并发爬虫或者下载器的项目) Golang数据结构的使用方式(地鼠文档上有) 进阶 数据库mysql 增删改查 redis ... »

GoLang设计模式06 - 对象池模式

这次介绍最后一个创建型模式——对象池模式。顾名思义,对象池模式就是预先初始化创建好多个对象,并将之保存在一个池子里。当需要的时候,客户端就可以从池子里申请一个对象使用,使用完以后再将之放回到池子里。池子里的对象在应用运行期间永远不会被破坏或回收。 适用场景: 当需要的对象的创建成本比较高,且该类型的 ... »

GoLang设计模式05 - 原型模式

原型模式也是一种创建型模式,它可以帮助我们优雅地创建对象的拷贝。在这种设计模式里面,将克隆某个对象的职责交给了要被克隆的这个对象。被克隆的对象需要提供一个clone()方法。通过这个方法可以返回该对象的拷贝。 原型模式的使用场景: 创建新对象的操作比较耗资源(如数据库操作)或代价比较高时。比较起从头 ... »

GoLang设计模式04 - 单例模式

单例模式恐怕是最为人熟知的一种设计模式了。它同样也是创建型模式的一种。当某个struct只允许有一个实例的时候,我们会用到这种设计模式。这个struct的唯一的实例被称为单例对象。下面是需要创建单例对象的一些场景: 数据库实例:一般在开发中,对于一个应用,我们通常只需要一个数据库对象实例 日志实例: ... »

golang 面试题(从基础到高级)

Golang面试问题汇总 通常我们去面试肯定会有些不错的Golang的面试题目的,所以总结下,让其他Golang开发者也可以查看到,同时也用来检测自己的能力和提醒自己的不足之处,欢迎大家补充和提交新的 »

wpgraceii

go语言调用everything的SDK接口

介绍 官方SDK地址 本项目会将官方dll编译到可执行程序中,运行时无需考虑dll问题。 根据官方介绍,使用SDK前需要运行everything程序。 执行go build -tag ASCII时编译ascii相关接口,否则编译unicode接口。 可以参考examples/search.go示例代 ... »

【算法】使用Golang实现加权负载均衡算法

背景描述 如下图所示,负载均衡做为反向代理,将请求方的请求转发至后端的服务节点,实现服务的请求。 在nginx中可以通过upstream配置server时,设置weight表示对应server的权重。 若存在多个服务节点时,负载均衡如何通过服务节点的权重进行转发。 如下详细说明权重转发算法的实现。 ... »

详细解读go语言中的chnanel

Channel 底层数据结构 type hchan struct { qcount uint // 当前队列中剩余元素个数 dataqsiz uint // 环形队列长度,即可以存放的元素个数 buf unsafe.Pointer // 环形队列指针 elemsize uint16 // 每个元素的 ... »

CJ-cooper go

Golang: 常用的文件读写操作

Go 语言提供了很多文件操作的支持,在不同场景下,有对应的处理方式,今天就来系统地梳理一下,几种常用的文件读写的形式。 一、读取文件内容 1、按字节读取文件 这种方式是以字节为单位来读取,相对底层一些 »

liuhe688

用Golang自己构造ICMP数据包 - 疯狂奔跑

ICMP是用来对网络状况进行反馈的协议,可以用来侦测网络状态或检测网路错误。 限于当前Golang在网络编程方面的代码稀缺,资料甚少,所以分享一个用Golang来构造ICMP数据包并发送ping程序的 »

php-rearch

Golang 图像验证码

https://github.com/mojocn/base64Captcha 小图片使用base64响应对于RESTful服务来说更便捷 安装golang包 go get -u github.com »

youhui