calc/Calc.go

48 lines
774 B
Go
Raw Normal View History

2024-04-20 16:19:54 +08:00
package main
import (
"flag"
"fmt"
"os"
"github.com/Knetic/govaluate"
)
var exp string = ""
var ver string = ""
var vsn bool = false
func init() {
flag.BoolVar(&vsn, "v", false, "Show Program Version")
flag.StringVar(&exp, "e", "", "Evaluable Expression")
flag.Parse()
}
func main() {
if vsn {
_ShowVersion()
os.Exit(0)
}
if exp == "" {
flag.Usage()
os.Exit(1)
}
expression, err := govaluate.NewEvaluableExpression(exp)
if err != nil {
fmt.Printf("[ERR] %v\r\n", err)
os.Exit(1)
}
result, err := expression.Evaluate(nil)
if err != nil {
fmt.Printf("[ERR] %v\r\n", err)
os.Exit(1)
}
fmt.Printf("Result=%v\r\n", result)
}
func _ShowVersion() {
fmt.Printf("%s\r\nAuthor: %s\r\nVersion: %s\r\n", os.Args[0], "TE / Vayne Tan", ver)
}