请问怎么解析用户输入表达式

2020-01-13 17:44:18 +08:00
 pmispig
我有一个值 i :=200,比如用户输入判断条件 " >= 100"
怎么把用户的输入转化为代码逻辑,
```
if (i >= 100 ){
fmt.Println("true")
}
```

是不是要先用正则切割,再做字符串判断
2945 次点击
所在节点    Go 编程语言
9 条回复
kumasama
2020-01-13 18:46:35 +08:00
你这让用户输入的条件得限制的严格一些吧
secondwtq
2020-01-13 18:59:02 +08:00
当然是用正则,Go 的正则库很好用
yjhatfdu2
2020-01-13 19:41:50 +08:00
wafm
2020-01-13 20:00:08 +08:00
就是脚本解释了呗
lihongjie0209
2020-01-13 20:07:35 +08:00
生成脚本代码, 然后找个执行引擎执行就好了
ShinichiYao
2020-01-14 08:45:55 +08:00
用户输入“≈100”怎么破?
luozic
2020-01-14 08:51:30 +08:00
不复杂的 praser+状态工厂。 复杂的那就是一个 dsl
pmispig
2020-01-14 10:19:36 +08:00
@yjhatfdu2 想要的就是这个,多谢~
zunceng
2020-01-14 18:08:55 +08:00
https://github.com/chai2010/calculator

之前看到大佬写的 也是 yacc

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/637581

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX