表达式处理方法、电子装置及存储介质制造方法及图纸

技术编号:25271013 阅读:20 留言:0更新日期:2020-08-14 23:04
本发明专利技术涉及数据处理技术,提供了一种表达式处理方法、电子装置及存储介质。该方法获取待计算数据的标识从配置文件中获取对应的计算表达式,对计算表达式的预定义变量进行顺序标记,并将标记后的预定义变量转换成中间变量生成中间变量表达式,基于该预定义变量的标识从数据库查找各个预定义变量的计算方式对该预定义变量执行计算,得到各个预定义变量的结果值,根据顺序标记将预定义变量的结果值赋值给中间变量表达式的中间变量,并将赋值后的中间变量表达式编译成表达式字节码,根据预定义变量的结果值及表达式字节码,调用计算引擎执行计算得到目标结果。本发明专利技术可以避免针对不同的计算写不同代码实现,扩展性强。

【技术实现步骤摘要】
表达式处理方法、电子装置及存储介质
本专利技术涉及数据处理领域,尤其涉及一种表达式处理方法、电子装置及存储介质。
技术介绍
目前,为了满足企业项目中不断变化的功能需求和业务需求,业务数据的计算表达式也越来越复杂,其要求计算的场景越来越多,如果直接对某个场景的计算表达式写具体的代码实现,则本次的计算实现并不能支持其他场景的方案。为了避免多种个性化计算不可扩展,难以维护等问题,急需一种高扩展、灵活且通用的表达式处理方法来解决上述问题。
技术实现思路
鉴于以上内容,本专利技术提供一种表达式处理方法、电子装置及存储介质,其目的在于解决现有技术中计算表达式不可扩展,难以维护的技术问题。为实现上述目的,本专利技术提供一种表达式处理方法,该方法包括:接收步骤:接收用户发出的数据计算请求,获取所述请求中待计算数据的标识,根据所述标识从预设的配置文件中获取待计算数据对应的计算表达式,对所述计算表达式的预定义变量进行顺序标记,基于所述计算表达式的初始数值将标记后的预定义变量转换成中间变量生成中间变量表达式,并将所述预定义变量添加至预设表达式列表;计算步骤:基于所述预设表达式列表解析所述计算表达式的预定义变量,基于该预定义变量的标识从预设数据库分别查找各个预定义变量的计算方式,基于查找到的计算方式对该预定义变量执行计算,得到各个预定义变量的结果值;编译步骤:根据所述顺序标记将预定义变量的结果值赋值给所述中间变量表达式的中间变量,并将赋值后的中间变量表达式编译成表达式字节码;及反馈步骤:根据所述预定义变量的结果值及所述表达式字节码,调用计算引擎执行计算得到目标结果,将所述目标结果反馈至用户。优选的,所述基于查找到的计算方式对该预定义变量执行计算,得到各个预定义变量的结果值包括:解析所述计算表达式的预定义变量,得到具有执行顺序的多个操作对象。优选的,所述解析所述计算表达式的预定义变量,得到具有执行顺序的各操作对象包括:调用表达式解析器对所述表达式的预定义变量进行解析,确定所述表达式的预定义变量的字符串类型;根据所述字符串类型,调用与所述字符串类型对应的字符串解析器对所述表达式字符串进行解析,得到所述具有执行顺序的多个操作对象,基于所述执行顺序依次执行多个操作对象,得到各所述预定义变量的结果值。优选的,所述基于所述执行顺序依次执行多个操作对象包括:判断所述操作对象是否为操作符,当所述操作对象不为操作符时,将所述操作对象对应的操作值存储至预设的栈中;当所述操作对象为操作符时,从预设函数对象库中调用所述操作符对应的函数对象对从所述预设的栈中获取的操作值进行运算,将运算后的操作值存储至所述预设的栈中。优选的,所述编译步骤包括:将所述中间表达式编译成表达式字节码后,将所述中间表达式存储至预设内存池。为实现上述目的,本专利技术还提供一种电子装置,该电子装置包括:存储器及处理器,所述存储器上存储表达式处理程序,所述表达式处理程序被所述处理器执行,实现如下步骤:接收步骤:接收用户发出的数据计算请求,获取所述请求中待计算数据的标识,根据所述标识从预设的配置文件中获取待计算数据对应的计算表达式,对所述计算表达式的预定义变量进行顺序标记,基于所述计算表达式的初始数值将标记后的预定义变量转换成中间变量生成中间变量表达式,并将所述预定义变量添加至预设表达式列表;计算步骤:基于所述预设表达式列表解析所述计算表达式的预定义变量,基于该预定义变量的标识从预设数据库分别查找各个预定义变量的计算方式,基于查找到的计算方式对该预定义变量执行计算,得到各个预定义变量的结果值;编译步骤:根据所述顺序标记将预定义变量的结果值赋值给所述中间变量表达式的中间变量,并将赋值后的中间变量表达式编译成表达式字节码;及反馈步骤:根据所述预定义变量的结果值及所述表达式字节码,调用计算引擎执行计算得到目标结果,将所述目标结果反馈至用户。优选的,所述基于查找到的计算方式对该预定义变量执行计算,得到各个预定义变量的结果值包括:解析所述计算表达式的预定义变量,得到具有执行顺序的多个操作对象。优选的,所述解析所述计算表达式的预定义变量,得到具有执行顺序的各操作对象包括:调用表达式解析器对所述表达式的预定义变量进行解析,确定所述表达式的预定义变量的字符串类型;根据所述字符串类型,调用与所述字符串类型对应的字符串解析器对所述表达式字符串进行解析,得到所述具有执行顺序的多个操作对象,基于所述执行顺序依次执行多个操作对象,得到各所述预定义变量的结果值。优选的,所述基于所述执行顺序依次执行多个操作对象包括:判断所述操作对象是否为操作符,当所述操作对象不为操作符时,将所述操作对象对应的操作值存储至预设的栈中;当所述操作对象为操作符时,从预设函数对象库中调用所述操作符对应的函数对象对从所述预设的栈中获取的操作值进行运算,将运算后的操作值存储至所述预设的栈中。为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质中包括表达式处理程序,所述表达式处理程序被处理器执行时,实现如上所述表达式处理方法中的任意步骤。本专利技术提出的表达式处理方法、电子装置及存储介质,通过将计算表达式配置化,统一由计算引擎处理,可以避免针对多样化个性化计算写不同代码实现,导致难以维护的问题,且支持预定义表达式及计算实现,扩展性强。附图说明图1为本专利技术电子装置较佳实施例的示意图;图2为图1中表达式处理程序较佳实施例的模块示意图;图3为本专利技术表达式处理方法较佳实施例的流程图;本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参照图1所示,为本专利技术电子装置1较佳实施例的示意图。该电子装置1包括但不限于:存储器11、处理器12、显示器13及网络接口14。所述电子装置1通过网络接口14连接网络,获取原始数据。其中,所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(GlobalSystemofMobilecommunication,GSM)、宽带码分多址(WidebandCodeDivisionMultipleAccess,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi、通话网络等无线或有线网络。其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SR本文档来自技高网...

【技术保护点】
1.一种表达式处理方法,应用于电子装置,其特征在于,所述方法包括:/n接收步骤:接收用户发出的数据计算请求,获取所述请求中待计算数据的标识,根据所述标识从预设的配置文件中获取待计算数据对应的计算表达式,对所述计算表达式的预定义变量进行顺序标记,基于所述计算表达式的初始数值将标记后的预定义变量转换成中间变量生成中间变量表达式,并将所述预定义变量添加至预设表达式列表;/n计算步骤:基于所述预设表达式列表解析所述计算表达式的预定义变量,基于该预定义变量的标识从预设数据库分别查找各个预定义变量的计算方式,基于查找到的计算方式对该预定义变量执行计算,得到各个预定义变量的结果值;/n编译步骤:根据所述顺序标记将预定义变量的结果值赋值给所述中间变量表达式的中间变量,并将赋值后的中间变量表达式编译成表达式字节码;及/n反馈步骤:根据所述预定义变量的结果值及所述表达式字节码,调用计算引擎执行计算得到目标结果,将所述目标结果反馈至用户。/n

【技术特征摘要】
1.一种表达式处理方法,应用于电子装置,其特征在于,所述方法包括:
接收步骤:接收用户发出的数据计算请求,获取所述请求中待计算数据的标识,根据所述标识从预设的配置文件中获取待计算数据对应的计算表达式,对所述计算表达式的预定义变量进行顺序标记,基于所述计算表达式的初始数值将标记后的预定义变量转换成中间变量生成中间变量表达式,并将所述预定义变量添加至预设表达式列表;
计算步骤:基于所述预设表达式列表解析所述计算表达式的预定义变量,基于该预定义变量的标识从预设数据库分别查找各个预定义变量的计算方式,基于查找到的计算方式对该预定义变量执行计算,得到各个预定义变量的结果值;
编译步骤:根据所述顺序标记将预定义变量的结果值赋值给所述中间变量表达式的中间变量,并将赋值后的中间变量表达式编译成表达式字节码;及
反馈步骤:根据所述预定义变量的结果值及所述表达式字节码,调用计算引擎执行计算得到目标结果,将所述目标结果反馈至用户。


2.如权利要求1所述的表达式处理方法,其特征在于,所述基于查找到的计算方式对该预定义变量执行计算,得到各个预定义变量的结果值包括:
解析所述计算表达式的预定义变量,得到具有执行顺序的多个操作对象。


3.如权利要求2所述的表达式处理方法,其特征在于,所述解析所述计算表达式的预定义变量,得到具有执行顺序的各操作对象包括:
调用表达式解析器对所述表达式的预定义变量进行解析,确定所述表达式的预定义变量的字符串类型;
根据所述字符串类型,调用与所述字符串类型对应的字符串解析器对所述表达式字符串进行解析,得到所述具有执行顺序的多个操作对象,基于所述执行顺序依次执行多个操作对象,得到各所述预定义变量的结果值。


4.如权利要求3所述的表达式处理方法,其特征在于,所述基于所述执行顺序依次执行多个操作对象包括:
判断所述操作对象是否为操作符,当所述操作对象不为操作符时,将所述操作对象对应的操作值存储至预设的栈中;
当所述操作对象为操作符时,从预设函数对象库中调用所述操作符对应的函数对象对从所述预设的栈中获取的操作值进行运算,将运算后的操作值存储至所述预设的栈中。


5.如权利要求1至4所述的表达式处理方法,其特征在于,所述编译步骤包括:
将所述中间表达式编译成表达式字节码后,将所述中间表达式存储至预设内存池。


6.一种电子装置,该电子装置...

【专利技术属性】
技术研发人员:宋和贵阳灿
申请(专利权)人:招商局金融科技有限公司
类型:发明
国别省市:广东;44

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

1