草庐IT

method-declaration

全部标签

methods - Go:并发调用方法对我不起作用

这个问题在这里已经有了答案:Nooutputfromgoroutine(3个答案)关闭7年前。我是Go的新手。我正在尝试这个例子,我想从一个方法执行并发调用。这对我不起作用(我没有看到输出)。基于“EffectiveGo”,它说方法和函数支持并发。我做错了什么?谢谢,-斯里坎特packagemainimport("fmt")typeHellostruct{aint}func(h*Hello)Myprint(valuestring){gofunc(){fmt.Println(value)}()}funcmain(){h:=&Hello{100}goh.Myprint("needtogo"

go - xml : encoding "utf-16" declared but Decoder. CharsetReader 是 nil 解码成功

我正在尝试将包含德语字符(例如ß、ä、Ö、ü等)的XML提要解码为结构,这会导致错误:xml:encoding"utf-16"declaredbutDecoder.CharsetReader没有解码成功基本上这就是我正在做的(省略了对工作部分的错误检查):resp,_:=http.Get(url)deferresp.Body.Close()bodyBytes,_:=ioutil.ReadAll(resp.Body)err=xml.Unmarshal(bodyBytes,&target)iferr!=nil{fmt.Println(err)}我尝试使用github.com/basgys/

http - Golang 'http.NewRequest(method, url, body)' 无法创建正确格式的请求

我正在尝试向以下api发送GET请求:https://poloniex.com/public?command=returnOrderBook带URL参数:currencyPair=BTC_ETHdepth=20-->¤cyPair=BTC_ETH&depth=20我尝试这样设置和执行我的请求:(请注意,为简洁起见,我删除了错误检查)pair:="BTC_ETH"depth:=20reqURL:="https://poloniex.com/public?command=returnOrderBook"values:=url.Values{"currencyPair":[]st

go - 语法错误 : non-declaration statement outside function body at fmt. Println(words, length)

我在go之旅中的解释器中有以下内容:packagemainimport"fmt"varsomeString="onetwothreefour"varwords=strings.Fields(someString)varlength=len(words)fmt.Println(words,length)我明白了tmp/sandbox216066597/main.go:11:syntaxerror:non-declarationstatementoutsidefunctionbody我最近通过在任何函数之外使用var而不是:=短语法来更正它,但错误与之前相同。

戈朗 : How to declare returned variables WITH TYPE?

在GO中,如何声明WITHTYPE函数的返回变量?例如我有这个代码dat,err:=ioutil.ReadFile("/tmp/dat")check(err)fmt.Print(string(dat))但我想要的是:vardat[]byte,errerror:=ioutil.ReadFile("/tmp/dat")check(err)fmt.Print(string(dat))然而,无论我如何尝试,我都只能得到这个输出syntaxerror:unexpectedcomma,expectingsemicolonornewlineor}我在没有IDE的情况下工作,随着变量数量的增加,必须将

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)}}程序编译、内存

语言 : lack of contains method design-justification

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion在浏览包含方法时,我遇到了以下问答contains-method-for-a-slice在这个问答中多次提到这个方法实现起来真的很简单。我不明白的是,如果它如此容易实现,并且看到DRY是一种流行的软件原则&&并且大多数现代语言如何实现所述方法,排除这种简单方法的背后可能涉及什么样的设计推理?

methods - 如何获取类型化函数的方法字段(Go)

我想知道是否可以使用反射或其他方式从类型化函数中获取方法字段。我要解决的问题是我有一个方法接受特定类型的函数,但我需要实际传输不同的类型并根据提供的类型执行操作。我知道我可以使用interface{}值作为接收者,但我不想放松对调用函数(“GetIt”)的类型检查packagemaintypettpstruct{Couponsstring}func(mttp)GetIt(xstring){ifm.Coupons!=""{print(m.Coupons)}}funccalculate(mthfunc(sstring)){//performcalculationsandupdatetheC

pointers - 调用结构函数给出 "cannot refer to unexported field or method"

我有这样的结构:typeMyStructstruct{Idstring}和函数:func(m*MyStruct)id(){//doingsomethingwithidhere}我还有一个这样的结构:typeMyStruct2struct{m*MyStruct}现在我有一个函数:funcfoo(str*MyStruct2){str.m.id()}但是我在编译时遇到错误:str.m.idundefined(cannotrefertounexportedfieldormethodmypackage.(*MyStruct)."".id如何正确调用这个函数? 最佳答案

戈朗 : declaring maps and slices with iota values

我有这个Go代码:packagemainimport"fmt"typebaseGroupintconst(fooGroupbaseGroup=iota+1barGroup)vargroups=[...]string{fooGroup:"foo",barGroup:"bar",}varxGroups=map[baseGroup]string{fooGroup:"foo",barGroup:"bar",}funcmain(){fmt.Println("groups")fork,v:=rangegroups{fmt.Println(k,v)}fmt.Println("xGroups")for