您现在的位置是:首页 > 文章详情

Dentaku —— 数学和逻辑公式解析器

日期:2023-01-15点击:290

Dentaku 是一种数学和逻辑公式语言的解析器和评估器,它允许在运行时将值绑定到公式中引用的变量。它旨在在不打开安全漏洞的情况下安全地评估不受信任的表达式。

例子

这可能是最简单的用代码来说明:

calculator = Dentaku::Calculator.new calculator.evaluate('10 * 2') #=> 2 

要进入区分大小写的模式,只需将一个选项传递给计算器实例:

calculator.evaluate('Kiwi + 5', Kiwi: -2, kiwi: 2) #=> 7 calculator = Dentaku::Calculator.new(case_sensitive: true) calculator.evaluate('Kiwi + 5', Kiwi: -2, kiwi: 2) #=> 3 

还可以将变量值存储在计算器的内存中,然后根据这些存储的值计算表达式:

calculator.store(peaches: 15) calculator.evaluate('peaches - 5') #=> 10 calculator.evaluate('peaches >= 15') #=> true 

Dentaku 具有内置函数(包括ifnotminmaxsum和 round)以及定义自定义函数的能力。函数通常像 Excel 中的对应函数一样工作:

calculator.evaluate('SUM(1, 1, 2, 3, 5, 8)') #=> 20 calculator.evaluate('if (pears < 10, 10, 20)', pears: 5) #=> 10 calculator.evaluate('if (pears < 10, 10, 20)', pears: 15) #=> 20 

内置运算符和函数

数学:+-*/%^|,&

比较:<><=>=<>!==,

逻辑:IFANDORXORNOT,SWITCH

数字:MINMAXSUMAVGCOUNTROUNDROUNDDOWN,ROUNDUP

字符串:LEFTRIGHTMIDLENFINDSUBSTITUTECONCAT,CONTAINS

集合: MAPFILTERALLANY,PLUCK

原文链接:https://www.oschina.net/p/dentaku
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章