今天看go语言net包下的代码时有些疑惑先上代码,有疑问的语句用注视标出来了://NewRequestreturnsanewRequestgivenamethod,URL,andoptionalbody.funcNewRequest(method,urlStrstring,bodyio.Reader)(*Request,error){u,err:=url.Parse(urlStr)iferr!=nil{returnnil,err}rc,ok:=body.(io.ReadCloser)//这条语句是什么意思if!ok&&body!=nil{rc=ioutil.NopCloser(body)}req:=&Request{Method:method,URL:u,Proto:"HTTP/1.1",ProtoMajor:1,ProtoMinor:1,Header:make(Header),Body:rc,Host:u.Host,}ifbody!=nil{switchv:=body.(type){//这里也不懂case*strings.Reader:req.ContentLength=int64(v.Len())case*bytes.Buffer:req.ContentLength=int64(v.Len())}}returnreq,nil}以上两条语句都是在.后接括号,这种语法是什么意思?是go里面特有的么?
相关分类