Wombat - 对大规模生成 Go 代码的探索

2017-07-23 08:51:23 +08:00
 taowen

项目代言熊

目标

泛型展开不是简单的类型替换。在 C++中有模板偏特化,以及由此发展出来一系列实现编译期计算的奇技淫巧,直到最后以 constexpr 变成语言的一部分。D 语言的 static if 也是类似的,在编译期实现了 D 语言的一个子集。在 Go 2.0 中即便支持了泛型,要达到 D 语言的高度,可能还需要很长的路要走。所以目前最佳的方案还是用代码生成的方案。但是纯手写的代码生成没有办法做到很复杂的泛型代码的组合,比如一个泛型函数调用另外一个泛型函数之类的。所以 wombat 的实现目标是设计一个能够支撑大规模代码生成的机制,使得复杂的 utility 能够被广泛复用。这些 utility 不仅仅是简单的 compare,max,甚至复杂的 json 编解码,参数校验工具等都可以代码生成。

详细内容

全文链接 http://v2p.ro/generics.cn.html

4461 次点击
所在节点    分享创造
6 条回复
trys1
2017-07-23 09:54:41 +08:00
楼下的,你说这个会火吗?
sorra
2017-07-23 10:17:27 +08:00
好东西
ihciah
2017-07-23 11:04:00 +08:00
熊很萌啊!
smithtel
2017-07-23 12:45:02 +08:00
go 本熊
glacier2002
2017-07-26 12:09:21 +08:00
表示没看懂。。。
SlipStupig
2017-11-23 11:55:03 +08:00
这到底是什么物种啊,长得不像老鼠也不想猪,更不像熊.............

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/377298

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX