当前位置: 首页 > 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 main

import (
	"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强大,支持的操作和类型有限,比如字符串表达式就没法使用变量、函数等

相关文章:

  • 苏轼在密州的四首千古名作
  • DIY私人图床:使用CFimagehost源码自建无需数据库支持的PHP图片托管服务
  • 【RTOS学习】优先级 | Tick | 任务状态 | 空闲任务 | 任务调度
  • javaweb:mybatis:mapper(sql映射+代理开发+配置文件之设置别名、多环境配置、顺序+注解开发)
  • 一图看懂CodeArts Governance 三大特性,带你玩转开源治理服务
  • OpenCV实现人脸关键点检测
  • pdf格式的简历中的照片太小,如何修改图片的大小
  • iOS 中,isa 指针
  • 小程序 | 小程序后端用什么语言开发比较好
  • 通讯网关软件024——利用CommGate X2Access实现Modbus TCP数据转储Access
  • ORACLE 19C PDB FOR MYSQL 5.7 部署ogg
  • 1.16.C++项目:仿muduo库实现并发服务器之HttpContext以及HttpServer模块的设计
  • 事务管理 vs. 锁控制:你真的分得清吗?何时使用何种并发控制策略?
  • EfficientDet: Scalable and Efficient Object Detection
  • 多架构环境下docker-compose部署rocketmq单机模式—— 筑梦之路
  • 力扣第39题 组合总和 c++ 回溯剪枝题
  • 需永远在线的游戏公司,如何在线替换开源存储?
  • Docker在边缘计算中的崭露头角:探索容器技术如何驱动边缘计算的新浪潮
  • 家政服务小程序,家政维修系统,专业家政软件开发商;家政服务小程序,家政行业软件开发
  • 设计模式之单例模式
  • 长安汽车辟谣作为二级企业并入东风集团:将追究相关方责任
  • 成立6天的公司拍得江西第三大水库20年承包经营权,当地回应
  • 李云泽:支持设立新的金融资产投资公司,今天即将批复一家
  • 市值增22倍,巴菲特30年重仓股盘点
  • 澎湃读报丨央媒头版五四青年节集中刊文:以青春之我,赴时代之约
  • 陈燮阳从艺60周年:指挥棒不停,心跳就不会老去