元编程 meta programming

元编程 meta programming

元编程 meta programming元编程是一种通过代码生成代码的思想,一般分为两种形式:macro宏展开 或者 模板runtime 运行时宏系统分为两种:文本替换,比如 C 和 C++抽象语法树,比如 Erlang和Rustruntime有分为Objective-C 的编译后的消息机制Ruby这种通过解释器实现runtime 都是通过根对象未能找到方法后,执行方法替换实现参考:https://draveness.me/metaprogramming

其他技术 2020-02-13 PM 8℃ 0条
go谚语

go谚语

本文摘自 https://www.kancloud.cn/cserli/golang/524388本文译自go-proverbs, 脱胎于 Rob Pike 振奋人心的演讲视频 talk at Gopherfest SV 2015 (bilibili).不要通过共享内存进行通信, 通过通信共享内存 (Don’t communicate by sharing memory, share memory by communicating)

Go 2019-10-30 PM 10℃ 0条
epoll

epoll

epoll原理 参考:https://my.oschina.net/editorial-story/blog/3052308 网卡DMA传来数据,存入内存 网卡向CPU发送中断信号,操作系统得知有新数据到来,通过网卡中断程序去处理数据 将数据写入对应的socket接收缓冲区 唤醒对应进程 将进程放入工作队列

操作系统 2019-10-30 PM 8℃ 0条
CGO

CGO

golang 中调用 c/c++ 代码有三种方式 直接嵌套在go文件中使用,最简单直观的 导入动态库 .so 或 dll 的形式,最安全但是很不爽也比较慢的 直接引用 c/c++ 文件的形式,层次分明,容易随时修改看结果的

Go 2019-10-30 PM 8℃ 0条
Gofmt

Gofmt

[TOC]为什么要用 gofmt大多数人认为我们格式化Go代码gofmt 以使代码看起来更好或结束团队成员之间关于程序布局的争论。但是, 1是,如果一个算法定义围棋源代码是如何被格式化,然后编程,如goimports 或 gorename 或者 go fix,可以更容易地编辑源代码,而无需编写代码回来时引入伪格式更改。这有助于您长期维护代码。 我认为源代码格式化工具非常简洁 提供。解析器/ ast /漂亮也是一件好事 打印机可用作mod。 但是,我不确定是否尝试强制执行格式化样式 拒绝配置格式化程序的能力(如FAQ提及) 是个好主意。至少go /打印机包可能是好的 即使命令行gofmt工...

Go 2019-10-30 PM 7℃ 0条