我用 Go 语言做了一个红白机模拟器

本文由 伯乐在线 - JackalHu 翻译,toolate 校稿。未经许可,禁止转载!英文出处:fogleman。欢迎加入翻译小组。 译注:Family Computer(简称 FC)是任天堂(Nintendo)公司发行的家用游戏主机。日版 FC 机身以红色和白色为主,因此在华人圈中又有“红白机”的俗称;欧美版 FC 在欧美则称 Nintendo Entertainment System(简称 NES)。 最近我编写了一个 FC 模拟器。制作这样一个模拟器主要是出于兴趣以及为了从中学习 FC ...阅读全文

阅读:6633 评论:2

golang使用walk编写的博客搜索查看的windows下的GUI软件

为了学习golang,我使用了golang walk这个windows下的GUI包实现了一款博客搜索查看的小软件。 **先上个展示图** ![输入图片说明](https://static.oschina.net/uploads/img/201708/25121015_VrPe.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201708/25121037_6gZp.png "在这里输入图片标题"...阅读全文

2017-08-25 14:06:12 timzzx
阅读:10440 评论:7

使用 Go 语言写一个即时编译器(JIT)

JIT(Just-int-time) 编译器是任何程序在被转换成机器码的运行过程中产生的。JIT 代码和其他代码(比如,fmt.Println)的区别在于 JIT 代码是在运行过程中生成的。 用 Golang 编写的程序是静态类型且提前编译。生成任意代码似乎是不可能的,更不用说执行所述代码了。但是,可以将指令发送到正在运行的进程。这是使用 Type Magic 完成的 - 将任何类型转换为任何其他类型的能力。 请注意,如果您有兴趣了解更多关于 Type Magic 的信息,请在下面...阅读全文

2018-04-01 21:38:06 polaris
阅读:5411 评论:0

使用golang制作windows GUI图形界面 — Walk

最近在学golang,想着能否用golang来开发一个Windows图形界面软件,就开始上网找资料,查到golang有一个Walk库可以实现该功能,下面就来认识下golang的Walk。 关于Walk界面库(官方介绍): Walk是一个写给Golang的Window应用程序库套件,它主要用于桌面GUI的开发,但也有更多的东西。 开始前我们要先注意,Walk官方声明,限只支持 golang 1.8.x 以上的版本,1.7.x以下的已经不支持了。 1.我们需要先安装Walk库,运行以下命令 go g...阅读全文

阅读:13995 评论:2

golang实现RPC的几种方式

什么是RPC 远程过程调用(Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。 该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。 如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。维基百科:远程过程调用 用通俗易懂的语言描述就是:RPC允许跨机器、跨语言调用计算机程序方法。打个比方,我用go语言写了个获取用户信息的方法getUserInfo,并把go程序部署在阿里云服务器上面,现在我有一...阅读全文

2018.08.20 23:00 豆瓣奶茶
阅读:60892 评论:3

golang压缩和解压缩zip文件

golang压缩和解压缩zip文件 一个简单例子说明如何使用golang提供的archive/zip包实现zip文件的压缩和解压缩。 压缩 提供两个参数: 一个是输入源文件 另一个是输出zip压缩文件 其中输入源文件可以是一个文件,也可以好似一个目录,如果是目录那么目录下的所有文件都会被压缩到输出。 当然这个函数很容易被扩展成支持多个输入源文件/目录的情况。 // srcFile could be a single file or a directory func Zip(srcFile str...阅读全文

2018.10.01 09:50 CodingCode
阅读:7123 评论:0

使用chromedp解决反爬虫问题

前言最近We川大上的教务处公告新闻已经很久没有更新了,想到可能是ip被封了,查了一下log,发现并不是,而是获取到的页面全变成了混淆过的js,下面放两个格式化的函数 1234567891011121314151617181920212223242526272829function _$Es(_$Cu) { _$Cu[14] = _$v9(); _$Cu[_$yf(_$ox(), 16)] = _$Dn(); var _$cR = _$CR(); _$cR = _$iT(); return _$D...阅读全文

2018-03-14 00:00 Mohuishou
阅读:6814 评论:0

golang 模板(template)的常用基本语法

golang 模板(template)的常用基本语法 模板 在写动态页面的网站的时候,我们常常将不变的部分提出成为模板,可变部分通过后端程序的渲染来生成动态网页,golang提供了html/template包来支持模板渲染。 这篇文章不讨论golang后端的模板读取及渲染方法,只讨论模板中嵌入变量,渲染变量、循环等一些基本用法。 变量 在golang渲染template的时候,可以接受一个interface{}类型的变量,我们在模板文件中可以读取变量内的值并渲染到模板里。 有两个常用的传入参数的...阅读全文

2019.06.25 14:09 虚心的锄头
阅读:11669 评论:0

Casbin 实现访问控制

简介 Casbin可以做到: 支持自定义请求的格式,默认的请求格式为{subject, object, action}。 具有访问控制模型model和策略policy两个核心概念。 支持RBAC中的多层角色继承,不止主体可以有角色,资源也可以具有角色。 支持超级用户,如 root 或 Administrator,超级用户可以不受授权策略的约束访问任意资源。 支持多种内置的操作符,如 keyMatch,方便对路径式的资源进行管理,如 /foo/bar 可以映射到 /foo* Casbin不能做到:...阅读全文

2019-12-24 14:32:33 雨澍生
阅读:2347 评论:0

探索Golang协程实现——从v1.0开始

问题引入  提起协程,你可能会说,不就go func吗,我分分钟就能创建上万个协程。可是协程到底是什么呢?都说协程是用户态线程,这里的用户态是什么意思?都说协程比线程更轻量,协程轻量在哪里呢?  本文主要为读者介绍这些内容:Golang v1.0协程并发模型——MG模型,协程创建,协程切换,协程退出,以及g0协程,重在理解协程栈切换逻辑;为了理解协程栈,还需要简单了解下虚拟内存,函数栈帧以及简单的汇编语言;Golang v1.0协程调度逻辑;defer,panic以及recover底层实现原理。...阅读全文

2021-02-03 10:43:58 mb6018e8479df66
阅读:1020 评论:1