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

http://www.dtcms.com/a/2596.html

相关文章:

  • 苏轼在密州的四首千古名作
  • 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在边缘计算中的崭露头角:探索容器技术如何驱动边缘计算的新浪潮
  • 家政服务小程序,家政维修系统,专业家政软件开发商;家政服务小程序,家政行业软件开发
  • 设计模式之单例模式
  • 联想G50笔记本直接使用F键功能(F1~F12)需要在BIOS设置关闭热键功能可以这样操作!
  • 使用transformers过程中出现的bug
  • notepad++ 批量替换删除指定字符之后 或者 之前的字符,Notepad+批量替换使用大全
  • vue3学习(七)--- Teleport传送组件
  • 使用Golang实现HTTP代理突破IP访问限制
  • react写一个简单的3d滚轮picker组件
  • postgresql|数据库|恢复备份的时候报错:pg_restore: implied data-only restore的处理方案
  • rabbitMQ的知识点
  • Java|学习|异常
  • Vue2 与 React 的区别