<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 一、go struct能不能比較 ~~~ 因為是強類型語言,所以不同類型的結構不能作比較,但是同一類型的實例值是可以比較的,實例不可以比較,因為是指針類型 ~~~ ## 二、go defer(for defer),先進后出,后進先出 ~~~ func b() { for i := 0; i < 4; i++ { defer fmt.Print(i) } } ~~~ ## 三、select可以用于什么,常用語gorotine的完美退出 ~~~ golang 的 select 就是監聽 IO 操作,當 IO 操作發生時,觸發相應的動作 每個case語句里必須是一個IO操作,確切的說,應該是一個面向channel的IO操作 ~~~ ## 四、client如何實現長連接 ~~~ server是設置超時時間,for循環遍歷的 ~~~ ## 五、主協程如何等其余協程完再操作 ~~~ 1、使用channel進行通信,context,select ~~~ 2、Go提供了更簡單的方法——使用`sync.WaitGroup`。`WaitGroup`,就是用來等待一組操作完成的。`WaitGroup`內部實現了一個計數器,用來記錄未完成的操作個數. 它提供了三個方法,`Add()`用來添加計數。`Done()`用來在操作結束時調用,使計數減一。`Wait()`用來等待所有的操作結束,即計數變為0,該函數會在計數不為0時等待,在計數為0時立即返回。 ``` package main import ( "fmt" "sync" ) func main() { var wg sync.WaitGroup wg.Add(2) // 因為有兩個動作,所以增加2個計數 go func() { fmt.Println("Goroutine 1") wg.Done() // 操作完成,減少一個計數 }() go func() { fmt.Println("Goroutine 2") wg.Done() // 操作完成,減少一個計數 }() wg.Wait() // 等待,直到計數為0 } ``` 執行結果: ``` Goroutine 2 Goroutine 1 ``` ## 六、slice,len,cap,共享,擴容 ~~~ append函數,因為slice底層數據結構是,由數組、len、cap組成,所以,在使用append擴容時,會查看數組后面有沒有連續內存快,有就在后面添加,沒有就重新生成一個大的素組 ~~~ ## 七、map如何順序讀取 ~~~ map不能順序讀取,是因為他是無序的,想要有序讀取,首先的解決的問題就是,把key變為有序,所以可以把key放入切片,對切片進行排序,遍歷切片,通過key取值。 ~~~ ## 八、http get跟head ~~~ HEAD和GET本質是一樣的,區別在于HEAD不含有呈現數據,而僅僅是HTTP頭信息。有的人可能覺得這個方法沒什么用,其實不是這樣的。想象一個業務情景:欲判斷某個資源是否存在,我們通常使用GET,但這里用HEAD則意義更加明確。 ~~~ ## 九、http 401,403 ~~~ 400 bad request,請求報文存在語法錯誤 401 unauthorized,表示發送的請求需要有通過 HTTP 認證的認證信息 403 forbidden,表示對請求資源的訪問被服務器拒絕 404 not found,表示在服務器上沒有找到請求的資源 ~~~ ## 十、http能不能一次連接多次請求,不等后端返回 ~~~ http本質上市使用socket連接,因此發送請求,接寫入tcp緩沖,是可以多次進行的,這也是http是無狀態的原因 ~~~ ## 十一、tcp與udp區別,udp優點,適用場景 ~~~ tcp傳輸的是數據流,而udp是數據包,tcp會進過三次握手,udp不需要 ~~~ ## 其他 [更多推薦](https://blog.csdn.net/ilini/article/details/107330173) [更多推薦](https://zhuanlan.zhihu.com/p/434629143)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看