当前位置: 首页 > news >正文

python和go执行字符串表达式

1、python/eval

python里可以使用内置的eval函数,来执行一个字符串表达式的结果,字符串表达式里可以是变量、函数、运算符等

def test():return True
flag = False
print(eval("test() and True and flag" ))

执行结果为False

2、golang/govaluate

那么在go里面怎么实现eval功能呢?可以使用github上的开源库govaluate

安装:go get github.com/Knetic/govaluate 

package mainimport ("fmt""github.com/Knetic/govaluate"
)func main() {expression, err := govaluate.NewEvaluableExpression("1 + 2")if err != nil {fmt.Println("字符串表达式有误")}result, err2 := expression.Evaluate(nil)if err2 != nil {fmt.Println("字符串表达式执行报错")}fmt.Println(result)
}

执行结果为3

当然,govaluate功能没有eval强大,支持的操作和类型有限,比如字符串表达式就没法使用变量、函数等

http://www.lryc.cn/news/192508.html

相关文章:

  • Python算法练习 10.14
  • 云上攻防-云原生篇Docker安全系统内核版本漏洞CDK自动利用容器逃逸
  • C# Sqlite数据库的搭建及使用技巧
  • gerrit代码review使用基本方法
  • 网络监控与故障排除:netstat命令的使用指南
  • Blender:渲染一个简单动画
  • 一篇文章带你用动态规划解决股票购买时机问题
  • 【设计模式】使用建造者模式组装对象并加入自定义校验
  • 简单聊聊低代码
  • SystemVerilog Assertions应用指南 第一章(1.27章节 “within”运算符)
  • 2023年09月 C/C++(七级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • [Mono Depth/3DOD]单目3D检测基础
  • 【Docker 内核详解】namespace 资源隔离(三):PID namespace
  • 1600*C. Game On Leaves(博弈游戏树)
  • Apache Ant的安装
  • 考研:数学二例题--∞−∞和0⋅∞型极限
  • C++算法:图中的最短环
  • C++学习——类其实也是一种作用域
  • Seata入门系列【4】undo_log、global_table、branch_table、lock_table字段及作用详解
  • 虚幻引擎:数据表格的C++常用API
  • Java日期格式化(DateFormat类和SimpleDateFormat类)
  • centos 7 lamp owncloud
  • 屏幕亮度调节保护您的眼睛
  • CentOS Linux下CMake二进制文件安装并使用Visual Studio调试
  • ASP.net相关目录,相关配置文件和.后缀名解释
  • 一键批量转换,轻松将TS视频转为MP4视频,实现更广泛的播放和分享!
  • 【Redis】使用Java客户端操作Redis
  • BSPHP 未授权访问 信息泄露
  • Learning Sample Relationship for Exposure Correction 论文阅读笔记
  • Vue项目 -- 解决Eslint导致的console报错问题