PineconeGo(A),准备写一个GoLang框架
Goodbye C/C++, It`s nice to meet you.
写了这么多年C/C++,太遗憾了不能成为第一工作语言,依依不舍,呜呜呜。
最贴近上帝的语言了,上能面向对象,下能写内嵌汇编的神之笔,这么原子化的语言,就像我的世界一样,万物白盒,自底向上,哎,第一份工作搞不了了,只能继续当游戏玩了!
妈的C++钱比Java还少,是他们不懂你!!
Morning, GoLang
既然用不了你了,那只能用你两个表弟了,Java和Go,Java 的大厦已经建好,Go也更C一些,就决定是Go你了,保证把Go也改成你的模样,哈哈哈!
编译语言,好评!Go有指针,好评!有垃圾回收,好评!有标准接口机制,好评!有协程,好评!支持Gcc调C库函数,好评!有括号,不搞强制缩进,大大好评!!
我擦,没运算符重载,map, list这鬼玩意你给我内嵌,语法怎么一股Delphi Pascal味,C和Pascal生孩子了是吧,宏和注解这种玩意也没有,呜呜呜,这没可玩性了啊,好吧又一个面向工程妥协的八股语言。
不过也挺好,有垃圾回收还是挺好的,支持结构体成员名和字符串绑定,安全指针,C的青春版,语法基本上还是C族的,以后就叫你C+了
Pinecone GoLang
哎呦,妈的GoLang这边基础设施,百废待兴,技术体系也不完全统一,可玩性还是有的,这就把你魔改成我最喜欢的样子。
数据结构 + 算法 + 硬件
第一步就是数据结构,妈的这map suckass,谁他妈准你这样设计,就不能学学人家JDK、STL,放标准库里面,我擦我要用LinkedTreeMap,LinkedHashMap这种你他丫也没有,运算符重载有没得,这写的多难看啊。
哎,重写启动,天才第一步,移植、重写容器和核心数据结构系统!
麻完了
我擦,好麻烦啊,呜呜呜,这Go的泛型,好可爱捏,motherf**ker!!!
1.19的Go有是有泛型了,但是这。。。What f**k is this.
试了下重写几个常见容器,没方法重载就算了,配合[T ~int64]这种多类型匹配,勉强能用,好家伙实现这HashMap,问题来了,我怎么知道你可不可以进行比较和Hash计算,还不支持C++下的SFINAE这种编译期机制,只能用反射带的运行类型识别来判断???
哇找了半天,资料也不多,终于找到底层map的hash计算方法,您给我这个巨大的switch,全是运行期的类型的泛型啊,我靠,大号instanceof可还行,我谢谢您嘞。
20231119
真的离谱,你是真的狗,您这Map,一言难尽,您学人家解释语言,这没问题,怎么还和C++ unordered_map一个味,即不是查找树那种有序,又不是Linked的队列序,沃日,人家JS/PHP/Python那个也是LinkedHashMap啊,您这个unordered_map真的搞,但是C++人家是支持运算符重载、完美迭代器和SFINAE这种全家桶啊,人家编译期泛型简直神迹,我用STL不爽我真可以重写一套, Java人家好歹JDK全家桶啊,保姆级SDK啊,您这泛型太欺负人了。
您原生这个json.Unmarshal,map顺序全乱了。。。简单的JSON我写写结构体保持有序都算了,但是那种非常复杂的动态JSON,沃日啊,谁去写结构体啊,你这个map我继承也不行,改都改不了,呜呜呜,为什么您其他方面那么逆天创新的新特性,硬要在泛型上恶心我一下。。。
终于找到好办法了,只能用适配器模式设计了,先构造函数期预热一下,创建一个可比较的适配器和Hash适配器,把两个关键操作重定向到实际函数指针上应该好很多,手动重载实现搁着。。。Go大爷我也求求您学一下人家Java,C++的方法重载,你这泛型就很萌萌哒啊,模板和泛型匹配实在可爱,用泛型我还要当人肉C++编译器给你预编译是吧,还要用适配器模式来写一堆接口,你编译器写的爽了,我妈卖批。。。