一种数据处理的方法、装置和存储介质制造方法及图纸

技术编号:31306725 阅读:11 留言:0更新日期:2021-12-12 21:24
本申请公开了一种数据处理的方法、装置和存储介质,具体为获取输入字符串,利用获取到的输入字符串,生成与输入字符串对应的运算符字符串,其中,运算符字符串包含输入字符串中的运算符、以及输入字符串中的实际变量参数被呈现为第一数据格式的字符项,在已注册的运算符中匹配运算符字符串中的运算符,当匹配到已注册的运算符时,调用为指定运算符创建的运算符函数处理运算符字符串中的字符项,其中,运算符函数为与注册后的该运算符函数对应的运算符的功能相匹配的功能函数。本申请实施例通过增加自定义的运算符语法,支持封装各种自定义运算符逻辑和自定义运算符函数名称,提升运算符的逻辑顺序可读性。算符的逻辑顺序可读性。算符的逻辑顺序可读性。

【技术实现步骤摘要】
一种数据处理的方法、装置和存储介质


[0001]本申请涉及计算机
,尤其涉及一种数据处理的方法、装置和存储介质。

技术介绍

[0002]运算符在编程语言中是很常用的,通常每种语言都会提供若干种内置支持的运算符,如“+、-、!、=”等。但每种语言提供的运算符均不完全相同,比如Swift支持的“..”运算符,Javascript就不支持。因为Javascript不支持自定义运算符功能,在Javascript中使用“..”运算符并不可行。
[0003]在此情况下,可通过在Javascript中创建一个与“..”运算符功能相同的函数,来达到相同效果。如可定义range(1,100),它的计算结果和Swift中1..100计算的结果是一样的,都是值为1到100的数组,即[1,2,4,

,100]。但使用函数与运算符相比,函数语法的逻辑顺序可读性不如运算符清晰。如Swift中的(1..<100).count..1000表达式,在Javascript中使用函数模拟则为range(closedRange(1,100).length),1000),可以看出函数由于只能在括号内传参数,所以在语句的逻辑顺序可读性上没有运算符清晰,特别是较长的语句。另外,运算符的语义往往是一种特殊的计算或逻辑判断,而现有的Javascript的函数只能用规定支持的字符命名(字母、中文、下划线、美元符号),使得函数不能使用特殊字符命名,不具有特定性。

技术实现思路

[0004]本申请实施例提供了一种数据处理的方法,克服了Javascript语言中不可使用自定义运算符的问题。
[0005]该方法包括:
[0006]获取输入字符串;
[0007]利用获取到的输入字符串,生成与所述输入字符串对应的运算符字符串,其中,所述运算符字符串包含所述输入字符串中的所述运算符、以及所述输入字符串中的实际变量参数被呈现为第一数据格式的字符项;
[0008]在已注册的所述运算符中匹配所述运算符字符串中的所述运算符;
[0009]当匹配到已注册的运算符时,调用为指定运算符创建的所述运算符函数处理所述运算符字符串中的所述字符项,其中,所述运算符函数为与注册后的该运算符函数对应的所述运算符的功能相匹配的功能函数。
[0010]可选地,对于每个所述运算符,将与该所述运算符的功能相匹配的所述功能函数作为对应的所述运算符函数,并创建包含所述运算符函数的函数名、以及该所述运算符的运算符名称的键值对;
[0011]保存创建的所述键值对之间的映射关系。
[0012]可选地,通过运算符执行函数对所述输入字符串进行解析,生成去除所述实际变量参数后的第一字符串数组,以及将按顺序提取的所述输入字符串中的各个所述实际变量
参数作为第二字符串数组;
[0013]循环所述第一字符串数组,在所述第一字符串数组的各个所述实际变量参数对应的位置添加所述第一数据格式的字符项,其中,所述x从0开始每循环一项加1直至所述第一字符串循环结束,以生成与所述输入字符串对应的所述运算符字符串。
[0014]可选地,在运算符抽象结构库中查找以所述运算符字符串为第一索引值的运算符抽象结构,并在未查找到对应的所述运算符抽象结构时,为所述运算符字符串创建所述运算符抽象结构,并以该所述运算符字符串为所述第一索引值保存至所述运算符抽象结构库中。
[0015]可选地,在所述运算符字符串中,筛选出除首个所述第一数据格式的字符项外的与所述运算符直接相连的所述第一数据格式的字符项,并在所述运算符与所述第一数据格式的字符项之间添加间隔符号;
[0016]在所述运算符字符串中,筛选出包含所述间隔符号的所述运算符和所述第一数据格式的字符项组成的结构字符串,并将所述结构字符串中包含的所述运算符对应的所述运算符名称作为该所述结构字符串的名称属性;
[0017]将每个所述结构字符串的所述第一数据格式的字符项中所述x作为所述实际变量参数的第二索引值进行存储。
[0018]可选地,判断首个所述第一数据格式的字符项的最左侧是否为非空字符,并在不为非空字符时,为所述运算符抽象结构添加所述多元运算符标识,其中,所述多元运算符标识为首个所述第一数据格式的字符项中所述x对应的所述实际变量参数的索引值。
[0019]可选地,当匹配到的所述运算符抽象结构未携带所述多元运算符标识时,在所述运算符抽象结构中获取所述结构字符串,并基于所述结构字符串的所述名称属性,在所述键值对之间的所述映射关系中获取对应的所述运算符函数;
[0020]基于所述运算符抽象结构中的每个所述结构字符串包含的所述第二索引值,在所述第二字符串数组中查找对应的所述实际变量参数,并将所述实际变量参数按照对应的所述第一数据格式的字符项所在的位置放置;
[0021]循环执行包含所述实际变量参数的所述运算符函数,并将前一个所述运算符函数的运算结果作为后一个所述运算符函数中的第一个参数。
[0022]可选地,当匹配到的所述运算符抽象结构携带所述多元运算符标识时,在所述运算符抽象结构中获取所述结构字符串,并基于所述结构字符串的所述名称属性,在所述键值对之间的所述映射关系中获取对应的所述运算符函数;
[0023]基于所述多元运算符标识在所述第二字符串数组中查找对应的所述实际变量参数,并将该所述实际变量参数作为于第一个所述运算符函数的第一个参数;
[0024]基于所述运算符抽象结构中的每个所述结构字符串包含的所述第二索引值,在所述第二字符串数组中查找对应的所述实际变量参数,并将所述实际变量参数按照对应的所述第一数据格式的字符项所在的位置放置;
[0025]循环执行包含所述实际变量参数的所述运算符函数,并将前一个所述运算符函数的运算结果作为后一个所述运算符函数中的第一个参数。
[0026]可选地,输出最后一个运算符函数的运行结果作为所述输入字符串对应的所述运行结果。
[0027]可选地,所述第一数据格式为${x}格式。
[0028]在本专利技术的另一个实施例中,提供了一种数据处理的装置,该装置包括:
[0029]获取模块,用于获取输入字符串;
[0030]生成模块,用于利用获取到的输入字符串,生成与所述输入字符串对应的运算符字符串,其中,所述运算符字符串包含所述输入字符串中的所述运算符、以及所述输入字符串中的实际变量参数被呈现为第一数据格式的字符项;
[0031]匹配模块,用于在已注册的所述运算符中匹配所述运算符字符串中的所述运算符;
[0032]调用模块,用于当匹配到已注册的运算符时,调用为指定运算符创建的所述运算符函数处理所述运算符字符串中的所述字符项,其中,所述运算符函数为与注册后的该运算符函数对应的所述运算符的功能相匹配的功能函数。
[0033]在本专利技术的另一个实施例中,提供了一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理的方法,其特征在于,该方法包括:获取输入字符串;利用获取到的输入字符串,生成与所述输入字符串对应的运算符字符串,其中,所述运算符字符串包含所述输入字符串中的运算符、以及所述输入字符串中的实际变量参数被呈现为第一数据格式的字符项;在已注册的所述运算符中匹配所述运算符字符串中的所述运算符;当匹配到已注册的运算符时,调用为指定运算符创建的运算符函数处理所述运算符字符串中的所述字符项,其中,所述运算符函数为与注册后的该运算符函数对应的所述运算符的功能相匹配的功能函数。2.根据权利要求1所述的方法,其特征在于,所述将与至少一个运算符的功能相匹配的功能函数注册为对应的运算符函数的步骤包括:对于每个所述运算符,将与该所述运算符的功能相匹配的所述功能函数作为对应的所述运算符函数,并创建包含所述运算符函数的函数名、以及该所述运算符的运算符名称的键值对;保存创建的所述键值对之间的映射关系。3.根据权利要求2所述的方法,其特征在于,所述生成与所述输入字符串对应的运算符字符串的步骤包括:通过运算符执行函数对所述输入字符串进行解析,生成去除所述实际变量参数后的第一字符串数组,以及将按顺序提取的所述输入字符串中的各个所述实际变量参数作为第二字符串数组;循环所述第一字符串数组,在所述第一字符串数组的各个所述实际变量参数对应的位置添加所述第一数据格式的字符项,其中,所述x从0开始每循环一项加1直至所述第一字符串循环结束,以生成与所述输入字符串对应的所述运算符字符串。4.根据权利要求3所述的方法,其特征在于,所述在已注册的所述运算符中匹配所述运算符字符串中的所述运算符的步骤包括:在运算符抽象结构库中查找以所述运算符字符串为第一索引值的运算符抽象结构,并在未查找到对应的所述运算符抽象结构时,为所述运算符字符串创建所述运算符抽象结构,并以该所述运算符字符串为所述第一索引值保存至所述运算符抽象结构库中。5.根据权利要求4所述的方法,其特征在于,所述为所述运算符字符串创建所述运算符抽象结构的步骤包括:在所述运算符字符串中,筛选出除首个所述第一数据格式的字符项外的与所述运算符直接相连的所述第一数据格式的字符项,并在所述运算符与所述第一数据格式的字符项之间添加间隔符号;在所述运算符字符串中,筛选出包含所述间隔符号的所述运算符和所述第一数据格式的字符项组成的结构字符串,并将所述结构字符串中包含的所述运算符对应的所述运算符名称作为该所述结构字符串的名称属性;将每个所述结构字符串的所述第一数据格式的字符项中所述x作为所述实际变量参数的第二索引值进行存储。6.根据权利要求5所述的方法,其特征在于,在所述筛选出除首个所述第一数据格式的
字符项外的与所述运算符直接相连的所述第一数据格式的字符项的步骤之前,所述方法进一步包括:判断首个所述第一数据格式的字符项的最左侧是否为非空字符,并在不为非空字符时,为所述运算符抽象结构添加所述多元运算符标识,其中,所述多元运算符标识为首个所述第一数据格式的字符项中所述x对应的所述实际变量参数的索引值。7.根据权利...

【专利技术属性】
技术研发人员:周涛
申请(专利权)人:北京沃东天骏信息技术有限公司
类型:发明
国别省市:

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

1