
仓库地址: https://github.com/lxzan/fi
动态
SQL查询条件构造器, 默认跳过空指针和类型零值
package main import ( "github.com/lxzan/fi" ) type Request struct { StartTime int64 `filter:"cmp=gte"` EndTime int64 `filter:"cmp=lt"` Name string `filter:"cmp=eq"` } func main() { v := &Request{StartTime: 1, Name: "aha"} f := fi.GetFilter(v) println(f.GetExpression()) } `start_time` >= ? AND `name` = ? func (c *Request) GetFilter() *fi.Filter { return fi. NewFilter(). Gte("start_time", c.StartTime). Lt("end_time", c.EndTime). Eq("name", c.Name) } go test -benchmem -run=^$ -bench ^Benchmark github.com/lxzan/fi goos: darwin goarch: arm64 pkg: github.com/lxzan/fi BenchmarkGetFilterReflect-8 501673 2374 ns/op 1376 B/op 37 allocs/op BenchmarkGetFilterNoReflect-8 1650524 721.8 ns/op 1104 B/op 18 allocs/op PASS ok github.com/lxzan/fi 4.035s