一种由基础类型构成的联合类型的类型合并方法技术

技术编号:37291428 阅读:25 留言:0更新日期:2023-04-21 03:22
本发明专利技术提供一种由基础类型构成的联合类型的类型合并方法,所述方法包括:基础类型的联合类型用基础类型的列表表示,并且列表中的类型不含有子类型关系;类型合并用一种特殊的表合并技术实现,合并结果保证类型列表中的各个类型之间不具有子类型关系。合并过程采用类型规则定义。本发明专利技术同时描述了该技术的一个应用是多团队协同开发中数据个性化配置时的类型冲突解决,用户资源配置操作的简化。用户资源配置操作的简化。用户资源配置操作的简化。

【技术实现步骤摘要】
一种由基础类型构成的联合类型的类型合并方法


[0001]本专利技术属于数据结构与算法领域,具体涉及了一种由基础类型构成的联合类型的类型合并方法,云原生领域对联合类型拆分与合并后得到最简联合类型的技术。

技术介绍

[0002]目前云原生领域的流行资源配置语言针对联合类型合并,有一些可选的方案,大致有传统的基于从右向左的覆盖更新原则和基于交集类型的联合类型合并算法。
[0003]第一种方案是由Wand提出的,它的实现方式是按照从右向左的顺序合并覆盖数据类型。该方案的优点是思路简单、易于实现,但是大多数情况都存在丢失部分原始数据的情况。下面是资源配置语言JSON的一个典型的数据合并例子,代码文件merge.js:
[0004]var arr1={name:["11"],code:["33"]};
[0005]var arr2={name:["22",3],code:[true]};
[0006]var arr=(JSON.stringify(arr1)+JSON.stringify(arr2)).replace(/}{本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种由基础类型构成的联合类型的类型合并方法,其特征在于,包括如下步骤:步骤S1,获取资源配置的源代码文件,明确需要调用合并操作的由基础类型构成的联合类型集合;步骤S2,根据解析器分析上述源代码文件,获得抽象语法树;步骤S3,遍历访问抽象语法树上各个节点的信息,如果当前节点调用了联合类型合并函数,确定该目标节点对应的待合并转换规则;步骤S4,基于每个节点对应的待合并转换规则,调用相应的转换规则,生成最终的结果类型;步骤S5,并将源对象的计算结果序列化为YAML配置文件。2.根据权利要求1所述一种由基础类型构成的联合类型的类型合并方法,其特征在于,步骤S3中待合并转换规则包括基本类型X和联合类型V1进行合并的转换规则、以及两个联合类型U1和V1进行合并的转换规则;依次遍历每个合并转换规则,并按照规则的前置条件进行匹配;对于匹配上的规则,根据该规则的转换主体进行计算;对于未匹配上的规则,继续遍历剩余的合并转换规则,直到获得最终的合并类型。3.根据权利要求2所述一种由基础类型构成的联合类型的类型合并方法,其特征在于,根据基本类型X和联合类型V1进行合并的转换规则,包括:检查待合并的联合类型V1是否为空,若为空,则对应的合并结果为(X)...

【专利技术属性】
技术研发人员:陈钢王楠朵晓东
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1