最近用go重构python项目,遇到基础问题比较多,自己水平比较菜,记录一下。
表达式求值其实很简单,数据结构都讲过该怎么做。但是数据类型复杂的话,写起来还是很麻烦,
go数据类型要求严格,都需要自己转化,很麻烦,可能是自己水平太低,不懂什么方便的技巧。
发现了一个包,很好用。
evaler - 一个简单的浮点算术表达式求值Go (golang)程序
https://github.com/Knetic/govaluate
用起来很简单,只是最后的数据类型需要自己转下。
result, _:= evaler.Eval("(1+2)+3.367676")
value:=evaler.BigratToFloat(result)
fmt.Println(value)