golang

A collection of 7 posts

golang

cannot assign requested address

昨天遇到一個 cannot assign requested address 的問題,這個問題主要的意思是主機端找不到可用的 port 來發起請求, 例如: TCP 連線遇到大量的 TIME_WAIT, 昨天就是這個問題 因為使用的 golang request 套件是使用 golang 的 http client, 但沒有指定 MaxIdleConns 值, 造成大量的 TIME_WAIT 現象 最後設定成這樣來解決 _httpClient = &http.Client{ Transport: &http.Transport{ MaxIdleConnsPerHost: 100, MaxIdleConns: 100, IdleConnTimeout:

golang

golang test

執行全部的 test cases $ go test 執行單一一個 test case 假設我想執行 TestABC() 這個 test case $ go test -run TestABC 執行單一檔案裡面的全部 test case 假設我有一個 router_test.go,而我想跑裡面全部的 test cases,首先我們必須先把裡面全部 test case 名稱統一改成 TestRouter 開頭,例如 TestRouterABC,這樣做的原因是因為之後我們要用 regular expression 來執行 $ go test -run "TestRouter.

golang

Golang 的 package 管理

當把全部的 golang 項目放到同一個 golang workspace 都會遇到一個問題,那就是 3rd party package 版本控制的問題。例如:我有一個 golang workspace 他的入徑是 c:/go-projects/src 然後下面有兩個項目分別較 project-one 和 project-two 而這兩個項目都有用到網路上的某一個包 (假設叫 gozip), 當 project-one 要升級 gozip 套件的時候,另外一個項目 project-two 也被需要強迫被升級,因為它們的引用gozip 套件來源是同一個地方,所以有些人比較喜歡用 golang workspace per project 的方式來進行開發,讓彼此golang的專案不會受到影響。 在

golang

Golang 如何做到 substring 和 substr

substring 和 substr 其實都是字串擷取的 function, 但這兩個的差異是什麼呢? substring 是設定 "開始" 和 "結束" (字串內容並不包含最後一個字)的位子,並擷取字串,而 substr 是設定 "開始位子" 和 "要擷取的長度",下面我們用一個實際的範例來展示 假設我們有一個字串 "Hello World" 我們想要取的 lo, W 的字段,我們可以怎麼做 用 substring 的方式,設定想要擷取字串的 "