草庐IT

评估器

全部标签

mongodb - 我如何要求 MongoDB 评估一些 JavaScript 以获得字段的值?

我想让MongoDB动态地为我正在插入的文档的字段之一分配一个值。例如:来自MongoDB服务器的当前时间就像NOW()在MySQL中所做的那样。我试过这个:c:=mongoSession.DB("myapp").C("instances")rand.Seed(time.Now().UnixNano())err:=c.Insert(struct{Serial,Priority,Url,LastSeeninterface{}}{Url:getInformedHost()+":"+getRunningPortString(),Priority:rand.Int(),LastSeen:mon

string - 评估字符串中的 boolean 表达式 - Go

我有一个字符串格式的boolean表达式,例如:name:="Fred"type:="Person"我想评估这个表达式是真还是假。exp:="(name==Fred)&&(type==Person)"最终,我希望能够执行条件语句,例如:if(exp){...}然而,根据研究,这并不是Go开箱即用的支持。我看到了关于使用AST进行解析和评估的建议。但是,我是一个相当新的人,尤其是AST,因此不确定如何去做。有人可以就我如何评估字符串boolean表达式提供任何指导吗?我还没有遇到任何完全支持这一点的软件包。 最佳答案 以下理论上是正确

go - 在 go 应用程序中传递要评估的表达式?

我有一个go命令行应用程序,它有一个搜索功能来扫描对象(结构)列表。我希望能够调用该搜索功能,即不仅仅是mycmdsearchbob也许我可以:mycmdsearch'o.Name()=="bob"'mycmdsearch'len(o.PhoneNumbers())>1'mycmdsearch'strings.Index(o.Name(),"bob")>=0'是否可以在go代码的循环中处理这样的表达式?如果这不可能,那么在不创建我自己的表达式语言/评估器的情况下,在GO中处理这个问题的最简单和最标准的方法是什么?(我可以看到我们有go-v8和golua之类的东西,但是我不确定这是否是正

go - == true 已评估但未使用

在代码里面,我尝试做一些操作is_html:=false;//Check,ifHTMlisexistfori:=0;i但是我得到一个错误:./api.go:26:missingconditioninifstatement./api.go:26:is_html==trueevaluatedbutnotusedError:processexitedwithcode2. 最佳答案 if语句需要{在go中的同一行这意味着你不能这样做ifis_html==true{fmt.Printf("%v","asdasd")}正确的代码是ifis_ht

go - 对于常量表达式和其他表达式,Go编译器的评估是否有所不同

为什么下面的代码无法编译?packagemainimport("fmt""unsafe")varxint=1const(ONEint=1MIN_INTint=ONE我得到一个错误main.go:12:constant2147483648overflowsint以上说法是正确的。是的,2147483648溢出int(在32位体系结构中)。但是移位操作将导致负值,即-2147483648。但是相同的代码也可以工作,如果我将常量更改为变量并获得了预期的输出。packagemainimport("fmt""unsafe")varxint=1var(ONEint=1MIN_INTint=ONE

go - 如何使用 Go 的 os/exec 评估环境变量

如何让Go评估$PATH变量。我目前只是打印“$路径”我有以下代码packagemainimport("fmt""log""os/exec")funcmain(){out,err:=exec.Command("echo","$PATH").Output()iferr!=nil{log.Fatal(err)}fmt.Printf("%s\n",out)} 最佳答案 你需要使用os.Getenv("PATH")packagemainimport("fmt""log""os/exec""os")funcmain(){out,err:=ex

go - 当 defer func 评估其参数时

我正在学习defer在golang中的行为方式,并希望在函数返回时使用它来处理错误。代码如下:packagemainimport"fmt"import"errors"funcmain(){a()}funca(){varerrerrordeferfunc(){iferr!=nil{fmt.Printf("1stdefer:%s\n",err)}else{fmt.Println("1stdefer:defernoterror")}}()deferfunc(errerror){iferr!=nil{fmt.Printf("2nddefer:%s\n",err)}else{fmt.Printl

concurrency - 在 goroutine 中选择评估所有其他语句

在使用Go的channel和例程时,我遇到了一种奇怪的行为,我希望有人能解释一下。下面是一个简短的程序,它应该通过channel将字符串发送到在单独的goroutine中运行的“监听器”(选择语句),从而将几个字符串打印到标准输出。packagemainimport("fmt""time")funcmain(){a:=make(chanstring)gofunc(){for{select{case使用gofunc(){fors:=rangea{fmt.Print(s)}}()//orevensimplergofunc(){for{fmt.Print(按预期工作。但是,使用select语

go - 在 Go 中评估公式

使用Go(golang)我想获取一个带有公式的字符串,并使用预定义的值对其进行评估。下面是使用python的parser模块来实现的方法:x=8code=parser.expr("(x+2)/10").compile()printeval(code)#prints1知道如何使用Go实现吗? 最佳答案 此软件包可能会满足您的需求:https://github.com/Knetic/govaluateexpression,err:=govaluate.NewEvaluableExpression("(x+2)/10");paramete

go - 评估/执行 Golang 代码/表达式,如 js 的 eval()

golang上有类似eval()的方法吗?评估/执行JavaScript代码/表达式:varx=10;vary=20;vara=eval("x*y")+"";varb=eval("2+2")+"";varc=eval("x+17")+"";varres=a+b+c;res的结果将是:200427这在golang中可行吗?为什么? 最佳答案 完全有可能。至少对于表达式,这似乎是你想要的:看看:https://golang.org/src/go/types/eval.gohttps://golang.org/src/go/constan