golang中http server.go中的testHookServerServe函式變數寫法問題
var testHookServerServe func(*Server, net.Listener) // used if non-nil
func (srv *Server) Serve(l net.Listener) error {
defer l.Close()
if fn := testHookServerServe; fn != nil {
fn(srv, l)
}
var tempDelay time.Duration // how long to sleep on accept failure
if err := srv.setupHTTP2_Serve(); err != nil {
return err
}
srv.trackListener(l, true)
defer srv.trackListener(l, false)
baseCtx := context.Background() // base is always background, per Issue 16220
ctx := context.WithValue(baseCtx, ServerContextKey, srv)
for {
rw, e := l.Accept()
if e != nil {
select {
case <-srv.getDoneChan():
return ErrServerClosed
default:
}
if ne, ok := e.(net.Error); ok && ne.Temporary() {
if tempDelay == 0 {
tempDelay = 5 * time.Millisecond
} else {
tempDelay *= 2
}
if max := 1 * time.Second; tempDelay > max {
tempDelay = max
}
srv.logf("http: Accept error: %v; retrying in %v", e, tempDelay)
time.Sleep(tempDelay)
continue
}
return e
}
tempDelay = 0
c := srv.newConn(rw)
c.setState(c.rwc, StateNew) // before Serve can return
go c.serve(ctx)
}
}
這是 http 包 server.go 標準庫的程式碼 本文的第 6 行程式碼 這種寫法是什麼意思啊 難道是判斷引數中的兩個變數是否為空(我瞎猜的)???希望能舉出點例子 幫助我理解下 感謝!!!
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- 13.1 函式中的變數函式變數
- 函式呼叫引數變數傳值的問題函式變數
- test函式中的區域性變數函式變數
- js中 函式引數的 傳值/傳引用 問題JS函式
- 在Js中匿名函式的幾種寫法JS函式
- 關於cuda中的函式問題函式
- 學會TypeScript中函式過載寫法TypeScript函式
- 關於javascript中變數及函式的提升JavaScript變數函式
- 函式中的私有變數和特權方法函式變數
- js中變數作用域問題JS變數
- golang中的init初始化函式Golang函式
- 學習 golang 中,寫了個 golang http client 練練手GolangHTTPclient
- js在函式中未定義的變數的處理JS函式變數
- golang中的鎖競爭問題Golang
- golang變數作用域問題-避免使用全域性變數Golang變數
- golang學習之路之函式可變引數Golang函式
- php中http_build_query函式PHPHTTPUI函式
- prototype原型繼承的方法無法訪問函式的私有變數原型繼承函式變數
- vue中elementUI樣式無法修改的問題VueUI
- 程式中的函式引數函式
- 關於Swift中的泛函式find的問題Swift函式
- 關於onethink 目錄,檔案讀寫檢測函式中的問題函式
- mysql中的(字元)轉換函式以及排序問題。MySql字元函式排序
- golang常用手冊:陣列、變數作用域、函式Golang陣列變數函式
- TypeScript中函式過載寫法,你在第幾層!TypeScript函式
- Bash 是如何從環境變數中匯入函式的變數函式
- 多執行緒中的使用共享變數的問題執行緒變數
- 使用 Java 讀寫 JMeter 中的變數JavaJMeter變數
- SQL server中的日期變數縮寫SQLServer變數
- golang http.Redirect()函式容易誤解的地方GolangHTTP函式
- RN中佈局樣式的寫法
- MySql中SUM函式計算錯誤問題MySql函式
- Linux中getopt函式、optind等變數使用詳解Linux函式變數
- 用Oracle表函式解決繫結變數集合問題Oracle函式變數
- 複數與複變函式選題函式
- 函式外與函式內的變數函式變數
- 使用DWR時,回撥函式的返回值沒法賦給js中的全域性變數函式JS變數
- GOLANG中time.After釋放的問題Golang