Expr —— Go 表达式语言
Expr 是一种以 Go 为中心的表达式语言,旨在以无与伦比的准确性、安全性和速度提供动态配置。
// Allow only admins and moderators to moderate comments. user.Group in ["admin", "moderator"] || user.Id == comment.UserId
// Ensure all tweets are less than 240 characters. all(Tweets, .Size <= 240)
特性
- 内存安全:Expr 的设计注重安全性,确保程序不会访问不相关的内存或引入内存漏洞
- 无副作用:在 Expr 中计算的表达式仅根据输入计算输出,确保不会产生可能改变状态或产生意外结果的副作用
- 防止无限循环,确保每个程序都会在合理的时间内结束
- 与 Go 无缝集成:将 Expr 集成到 Go 项目中,无需重新定义类型
示例代码
package main import ( "fmt" "github.com/antonmedv/expr" ) func main() { env := map[string]interface{}{ "greet": "Hello, %v!", "names": []string{"world", "you"}, "sprintf": fmt.Sprintf, } code := `sprintf(greet, names[0])` program, err := expr.Compile(code, expr.Env(env)) if err != nil { panic(err) } output, err := expr.Run(program, env) if err != nil { panic(err) } fmt.Println(output) }

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
AlmaLinux 经济收益见长,红帽 RHEL 源码限制不成威胁
红帽在两个月前发布公告表示,将限制对 Red Hat Enterprise Linux (RHEL)源代码的访问,未来 CentOS Stream 将成为公共 RHEL 相关源代码发布的唯一仓库。对于这一决策,AlmaLinux OS Foundation主席 Benny Vasquez 则向 SiliconANGLE 表示,普通用户受到的影响其实非常非常的小。 "总的来说,除了内核更新之外,我们还是和以前一样"。RHEL 新版本发布当天可能不再提供更新,但开发人员仍然可以通过 CentOS Stream 获得红帽计划的增强功能和错误修复。 AlmaLinux 是一个基于 RHEL 的克隆版本,由 CloudLinux 公司发起创建;采用 RHEL 8 作为其基础,源代码完全兼容 RHEL。它的开发始于红帽决定停止开发 CentOS(非 Stream 版本)之后,第一个正式版本在 2021 年 3 月发布。 Vasquez 认为,虽然大众普遍认为 CentOS Stream 中的所有内容最终都不会出现在 RHEL 中,但实际情况并非如此。"我想不出任何他们在 RHEL 中发布的东西不会...
- 下一篇
Debian 支持龙芯 LoongArch 架构
上月Debian 社区正式接收 RISC-V 成为官方支持架构,并计划在 Debian 13 开发周期中完成移植。 近日,Debian 社区的开发者邮件列表显示,Debian Ports 添加了对龙芯 LoongArch 架构的支持,这意味 Debian Ports 存档镜像以及想要构建的基础设施均包含了 LoongArch 架构。 邮件还提到,LoongArch 现在已经成为 Debian Ports 归档镜像的最新 target。初始的 Debian LoongArch bootstrap 大约包含 200 个软件包,而使其成为自托管软件的工作仍在进行中。 一旦达到自托管的里程碑,Debian 计划开始在 Loongson 托管的真实 LoongArch CPU 硬件上运行 Debian 软件包构建。 [1] http://ftp.ports.debian.org/debian-ports/pool-loong64/ [2] https://buildd.debian.org/status/architecture.php?a=loong64&suite=sid
相关文章
文章评论
共有0条评论来说两句吧...