开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2010|回复: 99
打印 上一主题 下一主题
收起左侧

[易源码分享] 结构工厂的一些示例

[复制链接]

结帖率:100% (49/49)
跳转到指定楼层
楼主
发表于 2025-4-24 00:59:30 | 只看该作者 回帖奖励 |正序浏览 |阅读模式   江西省南昌市
分享源码
界面截图: -
是否带模块: -
备注说明: -
本帖最后由 明天自然醒 于 2025-4-24 01:08 编辑

模块源码:结构工厂_精易论坛

# 本模块采用C++开发,速度与效率不会太差

容器

概述:设计了两种基本容器,数组与字典。使用std::variant包装。

容器里面可以放大部分的基本数据类型、自定义数据类型、嵌套数组、嵌套字典。

类似“Python”的list和dict,功能较丰富,为了丰富易语言的基本容器而开发。

列表

1.深拷贝
2.依据路由规则从列表中获取值,类似Json取值
3.预留指定容量的空间
4.基本方法:添加、取值、删除、清空、删除范围、切片、反转、查找指定值、统计次数
5.深度比较
6.JSON序列化与反序列化

字典

1.深拷贝
2.依据路由规则从字典中获取值,类似Json取值
3.预留指定容量的空间
4.基本方法:添加、删除、清空、取值、取所有键
5.深度比较
6.枚举器
7.JSON序列化与反序列化

排序器

通用框架排序所有的自定义数据结构,按内存比较。

怎么排序?
由你指定规则。

规则的格式怎么写?

// 假设这里有一个结构体,第一个参数是人名,第二个参数是年龄,第三个参数是评分
people = [("Alice", 25, 9.2), ("Bob", 20, 6.9), ("Charlie", 30, 15.3)]

如:先按年龄从小到大,再按评分从大到小

那就这样写:年龄,-评分

按排序顺序列出参数,前面带个负号表示降序

你只需给出表达式列表,类似Pythonlambda表达式,你给出参数列表即可。

基础排序器

通用框架排序大部分的基础数据结构。

字节型、整数型、短整数型、长整数型、小数型、双精度小数型、文本型、日期时间型、逻辑型

结构解释器

自定义数据类型,按地址的方式,取出第几个参数,或者按参数名取出变量

本模块所有涉及到自定义结构的基本上都需要使用该对象

结构解析器

用作全局变量,解析你定义的自定义数据类型

对象管理器

方便维护本模块所有的对象内存,采用RAII style机制,可以方便地获取和释放本模块的所有对象,并自动释放内存。此对象禁止以参数传递!模块里面需要手动释放内存的对象都可以在这里管理。



游客,如果您要查看本帖隐藏内容请回复



点评

支持任意自定义数据类型(任意嵌套、数组)   江西省南昌市  发表于 3 天前

评分

参与人数 22好评 +2 精币 +22 收起 理由
perfectmyt + 1 + 1 支持开源~!感谢分享
初阳123 + 1 感谢分享,很给力!~
hackjoe + 1 感谢分享,很给力!~
风雨3137 + 1 感谢分享,很给力!~
sundanming + 1 感谢分享,很给力!~
pcghr355 + 1 感谢分享,很给力!~
huangdi956 + 1 感谢分享,很给力!~
Zźh926 + 1 感谢分享,很给力!~
jc520hll + 1 感谢分享,很给力!~
z134 + 1 感谢分享,很给力!~
ma4747 + 1 感谢分享,很给力!~
cbl521ysys + 1 感谢分享,很给力!~
无尘666 + 1 感谢分享,很给力!~
3266167 + 1 感谢分享,很给力!~
huangdi9569 + 1 感谢分享,很给力!~
pj小黑屋 + 1 感谢分享,很给力!~
zjbin1989 + 1 感谢分享,很给力!~
liy456 + 1 感谢分享,很给力!~
文西哥 + 1 感谢分享,很给力!~
望尘莫及 + 1 感谢分享,很给力!~
暮光之城 + 1 感谢分享,很给力!~
wuqingg + 1 + 1 新技能已get√

查看全部评分


本帖被以下淘专辑推荐:

  • · 鱼木|主题: 1598, 订阅: 155
结帖率:85% (11/13)

签到天数: 6 天

99
发表于 昨天 21:44 | 只看该作者   天津市天津市
感谢分享
回复 支持 反对

使用道具 举报

签到天数: 5 天

98
发表于 昨天 21:43 | 只看该作者   江苏省常州市
79879879876546546
回复 支持 反对

使用道具 举报

签到天数: 1 天

97
发表于 昨天 21:40 | 只看该作者   河北省廊坊市
学习一下
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)

签到天数: 7 天

96
发表于 前天 01:33 | 只看该作者   福建省福州市
  
数据类型名公开备 注
数据类型3 
成员名类 型传址数组备 注
名称文本型  
价格整数型  


  
子程序名返回值类型公开备 注
_按钮4_被单击  
变量名类 型静态数组备 注
自定义数据类型33
排序器a基础排序器 
自定义 [1].名称 = “xx”
自定义 [1].价格 = 33
自定义 [2].名称 = “zz”
自定义 [2].价格 = 65
自定义 [3].名称 = “yy”
自定义 [3].价格 = 12
排序器a.创建 ()
排序器a.排序 (取变量数据地址 (自定义), #整数型 )
调试输出 (排序器a.是否有效 ())
排序器a.释放 ()
调试输出 (自定义 [1].名称, 自定义 [1].价格, 自定义 [2].名称, 自定义 [2].价格, 自定义 [3].名称, 自定义 [3].价格)


i支持库列表   支持库注释   
spec特殊功能支持库


输出结果还是原来的,这代码 有哪搞错了么   

开始运行被调试程序
* 真
* “xx” | 33 | “zz” | 65 | “yy” | 12
被调试易程序运行完毕

排序器的第三个参数写啥来着?    排序算法。参考常量:#algorithm_xxx???  一头雾水  到底哪个整数代表哪个算法
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)

签到天数: 7 天

95
发表于 前天 00:38 | 只看该作者   福建省福州市
学习一下
回复 支持 反对

使用道具 举报

签到天数: 2 天

94
发表于 3 天前 | 只看该作者   山东省威海市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

签到天数: 8 天

93
发表于 6 天前 | 只看该作者   湖北省武汉市
谢谢分享
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
92
发表于 6 天前 高大上手机用户 | 只看该作者   香港特别行政区*
66666666666
回复 支持 反对

使用道具 举报

签到天数: 5 天

91
发表于 2025-5-2 22:31:11 | 只看该作者   上海市上海市
感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表