草庐IT

rand_var

全部标签

go - 如何比较 Int Var 与结构的内容

使用Go1.11。得到以下结构,typeinputsDatastruct{TurnOneintTurnTwointTurnThreeintTurnFourintTurnFiveintTurnSixintTurnSevenintTurnEightintTurnNineint}保存用户输入的数据。没问题,但我想从TurnTwo检查用户输入的内容是否已经输入?示例,输入1->6,输入2->4,输入3->6所以一旦用户再次为第3轮输入6,它会记录,抱歉,再试一次...这就是我检查的方式,funccheckInputTwo(userInputint)bool{varokboolok=trueif

database - 如何从函数返回 ref var

我刚开始学习Go,在从函数返回refvars时遇到问题我有一个从数据库表中获取行的函数:funcgetData(querystring,db*sql.DB)*sql.Rows{rows,err:=db.Query(query)iferr!=nil{fmt.Println("SQLselecterror:")log.Fatal(err)}deferrows.Close()returnrows}现在我尝试从数据库中获取数据rows:=getData("select*fromall_obrash",db)fmt.Println(rows)我希望它只返回*sql.Rows但我一无所获&{0xc

go - 何时使用 var 或 := in Go?

这个问题在这里已经有了答案:WhytherearetwowaysofdeclaringvariablesinGo,what'sthedifferenceandwhichtouse?(1个回答)varvs:=inGo(3个回答)2年前关闭。下面两个例子有什么区别吗?typeExamplestruct{}funcmain(){e:=Example{}}对比typeExamplestruct{}funcmain(){vareExample}有更好的吗?谢谢! 最佳答案 可能值得注意:使用:=当您需要创建一个带有特定值(不是零值)的变量时。

go - 如何在 mux.Vars(request) 中设置一个值

我想在mux.Vars()中设置一个值,MatcherFunc返回true,然后handlerFun可以访问读取。但是当mux.Vars(request)["key"]="value"时,对nil映射中的条目的panic分配如何设置值:domainRouter:=router.MatcherFunc(func(request*http.Request,match*mux.RouteMatch)bool{ifisOk{mux.Vars(request)["key"]="value"returntrue}returnfalse}).Subrouter() 最佳答

go - 为什么每次运行程序时 math/rand 包中的 rand.Intn() 函数都会生成相同的随机数序列?

我使用rand.Intn(nint)函数交换slice内的元素,但每次运行该程序时,输出都是slice内相同的随机元素序列。我在这里缺少什么明显的东西? 最佳答案 来自documentationUsetheSeedfunctiontoinitializethedefaultSourceifdifferentbehaviorisrequiredforeachrun.IfSeedisnotcalled,thegeneratorbehavesasifseededbySeed(1).默认情况下,每次运行都会获得相同的种子。您可以使用当前时间

go - var _ xerrors.Formatter =包装{}

Thisquestionalreadyhasanswershere:Whatdoesthisgolangcodedo?[duplicate](2个答案)去年关闭。https://github.com/golang/xerrors/blob/master/fmt_test.go#L379var_xerrors.Formatter=wrapped{}var_xerrors.Formatter=detailed{}这两条线的目的是什么? 最佳答案 https://github.com/golang/xerrors该存储库包含新Go1.13

api - GoLang/Mux 语法问题 : if ID, Ok = mux.Vars(r) ["ID"]; !行

我是Golang的新手,我正在阅读某人使用gorilla/mux编写的API代码,我遇到了这段代码。funcheroGet(whttp.ResponseWriter,r*http.Request){varIDstringvarOkboolifID,Ok=mux.Vars(r)["ID"];!Ok{//dosomething}我无法理解Ok在这种特定情况下的作用以及何时触发!Ok。请注意,此函数是GET端点。(r.HandleFunc("/hero/{ID}",heroGet).Methods("GET")) 最佳答案 我假设您使用的

random - crypto/rand read() 的两个返回值在什么情况下有用?

crypto/rand的典型用法是这样的:salt:=make([]byte,saltLength)n,err:=rand.Read(salt)它用一系列随机字节填充我在这里标记为“salt”的字节slice。在什么情况下随机数生成器可能会失败?在err不为零的情况下退回到数学/兰德等价物是否不安全?由于字节slice的长度是已知的,n对我来说似乎也没用,我有什么理由不直接使用_,err代替它吗? 最佳答案 为了安全起见,您的代码应该看起来更像这样:packagemainimport("crypto/rand""fmt")funcm

Golang var 和字面量用法

这个问题在这里已经有了答案:nilslicesvsnon-nilslicesvsemptyslicesinGolanguage(3个答案)关闭9个月前。选项1varemployees[]Employeesession.Employees=employees选项2session.Employees=[]Employee{}关于执行后的session.Employees,这两个Golang代码选项有什么区别(如果有的话)?

arrays - var 和 := in slice declaration go language 的区别

我最近开始研究go并且想知道声明slice的几种方法没有var-p:=[]int{}与变量varp=[]int{}这是两个程序第一个packagemainimport"fmt"funcmain(){p:=[]int{1,2,4,8,16,32,64,128,256,512,1024}fori,v:=rangep{fmt.Println(i,v)}}第二个packagemainimport"fmt"funcmain(){varp=[]int{1,2,4,8,16,32,64,128,256,512,1024}fori,v:=rangep{fmt.Println(i,v)}}程序编译、内存