jjzjj

variable-declaration

全部标签

variables - golang 编译器说程序正在重新定义变量,还没有重新定义

编译器说每个已定义的变量都在5行后再次定义并引发错误,当然我没有在5行后重新定义所有变量,我该如何停止这个错误?这是其中一个结构的示例typeHolderstruct{NamestringHolders_needintAvailint}它声称在32之类的结构关闭后的行上有redifend我已经找到了答案 最佳答案 您应该添加一些代码并让我们确切知道您在做什么。您可能在初始化变量后使用:=而不是=。例如i:=1//useii=2//changevalueofiusing=sinceihasalreadybeendeclared//i:

go - 错误 : "declared and not used" even if I assign to it

我找不到为什么下面的代码给出编译错误“alivedeclaredandnotused”。funcping(ipstring){varalivebool_,err:=exec.Command("ping","-n1","-w1000",ip).Output()iferr!=nil{alive=false}else{alive=true}} 最佳答案 您看到的编译错误正是正在发生的事情。varalivebool未使用。您声明它并为其分配一个值,但您永远不会对它做任何事情。这是对将运行的代码的playground友好修改:packagem

go - 是否可以将变量 "embedded variables"添加到结构中?

typeUserModelstruct{...}func(u*UserModel)C()string{return"system_users"}上面将一个嵌入的结构分配给类型UserModel,Go是否允许用vars或consts做同样的事情?有点像var(u*UserModel)C="system_users"你明白了。 最佳答案 方法方法是一个函数,其接收者绑定(bind)到一个类型。接收方可以采用一个值或一个指向方法绑定(bind)到的类型的指针。Gobyexample提供了这个很好的example:typerectstruc

variables - 使用其他变量中的数据引用go中的变量?

我对go/编码比较陌生。我希望能够通过使用变量来引用变量。vara=make([]int,0)varb=make([]int,0)varc=make([]int,0)我定义了一些sliceset:=input.Ask("Whichsetwouldyouliketoinputto(a,b,c):")fortrue{num:=input.Ask("Number:")strings.toLower(set)=append(strings.toLower(set),num)}我希望“strings.tolower”部分输出一个字符串,它确实如此,这将允许我选择我定义的变量之一。

go - 语法错误 : Non-declaration statement outside function body, 但所有内容都有声明

这行不通:packagemainvarformatterstring="fmt"import(formatter)funcmain(){fmt.Println(formatter)}我得到:语法错误:函数体之外的非声明语句即使一切都有声明。 最佳答案 根据Gospecification:Eachsourcefileconsistsofapackageclausedefiningthepackagetowhichitbelongs,followedbyapossiblyemptysetofimportdeclarationsthatd

variables - 短声明运算符隐藏全局变量

有oneFunction返回2个类型的值int和error.我想将第一个值分配给已经存在的变量,并将第二个值分配给一个新变量。如果我使用短声明运算符:=,将创建2个新变量x和err.varxintx,err:=oneFunction()摆脱创建新的x变量我不能使用:=运算符并声明err打电话前oneFunctionvarxintvarerrerrorglob,err=oneFunction()我想知道是否有另一种方法可以将第一个值设置为全局变量而不是创建一个新值? 最佳答案 没有。您声明varerrerror的示例是执行您想要的操作

go: var declared but not used 错误 - 如何解决?

在这个函数中,我得到了“sdeclaredandnotused”,我不明白-我是否需要以某种方式将其标记为“我真的使用过它”还是什么?funcgetString(datamap[string]interface{},namestring)(string,error){s:=data[name]ifreflect.TypeOf(s).Kind()!=reflect.String{returns.(string),nil}return"",&apiError{1,"it'snotastring"}}奇怪的是,我没有从这个函数中得到错误:funcgetInt(datamap[string]i

variables - 如何通过连接两个字符串来创建动态变量名

我想通过连接当前日期来创建变量名,并为创建的变量名提供一个值。我的变量名应该类似于这样的"Key-2019-01"这样我就可以将值存储为varKey-2019-01="yes"我试过如下。packagemainimport("fmt""time""strconv""strings")funcmain(){currentMonth:=time.Now().Month()currentYear:=time.Now().Year()varmonth=int(currentMonth)varcurrentDate=strings.Join([]string{strconv.Itoa(curre

variables - 如何对变量使用多态性

我是Go新手,开始学习多态性。当多个对象需要使用相同的功能时,我知道如何去做。但是我有一个新问题,如果我在不同的对象上有相同的变量,我不知道该怎么办。在下面的示例中,我有两个不同的对象:struct1和struct2。它们都有相同的变量name。我可以跑过它们并检查哪个是哪个并相应地工作(你可以测试它here):packagemainimport("fmt")typestruct1struct{namestring}typestruct2struct{namestring}funcmain(){structMap:=make(map[string]interface{})s1:=str

variables - Golang 中不同的变量类型声明

您好,自上次查看以来我才开始学习Go,阅读了一些文档并注意到它与定义结构或接口(interface)有关。仍然无法区分varresult[]Struct和result:=Struct{}有没有我可以引用的特定文档? 最佳答案 第一个示例中的结果是一个nilslice。规范说变量是initializedtotheirzerovalues那zerovalueofasliceisnil.第二个示例中的result是一个Struct值。它使用shortvariabledeclaration和compositeliteralStruct的值。