今天看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里面特有的么?
添加回答
举报
0/150
提交
取消