Time of Update: 2016-04-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。數組變得不太一樣了。要求數組的長度必需在編譯時間是能確定的,也就是說,數組的元素個數必需是常量或常量運算式。比如java中可以這樣:public int[] createArr(int x){return new int[x];}在Go中不能用這種方法建立數組,只能建立一個數組切片來達到目的。不過話說回來,數組切片也不錯,還能隨時往裡增加東西:func createArr(x int)(m [] int){return make(
Time of Update: 2016-04-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。最近在用 Go 做一個小型的 gateway 服務。PHP 請求 Go 的 tcp server,然後 Go 根據命令參數開啟多個 goroutine 去調度 php-fpm 執行不同的指令碼並組合結果返回。 想來只是利用 goroutine 的便利並發執行邏輯,如此簡單直接。不過在測試的時候 PHP 發送 socket 的 json 資料發生了明確的截斷,後來發現是我煞筆的被 bufio.Reader
Time of Update: 2016-04-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。valyala/fasthttp 是號稱比官方net/http庫更快的 http server 庫。就去順便研究了,發現一些細節的不同。處理 net.Conn 的 goroutine處理net.Conn的goroutine的使用方式,和標準庫有很大差別。在標準庫,net.Listener.Accept() 到一個串連,就會開啟一個goroutine:// Serve accepts incoming connections on
Time of Update: 2016-04-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。我剛剛寫好新的部落格程式 Pugo,歡迎試用和體驗。這兩天我把個站 fuxiaohei.me 遷移到新的部落格程式。但是,經過一天的運行,發現記憶體從啟動的 14MB 上升到了 228 MB。顯然程式發生記憶體泄露,所以也開始以下調優過程。PPROFpprof 是 Golang 內建的調試工具,有很多可用的工具。pprof 的調試方式有代碼的方式和 HTTP 方式。其中 HTTP 調試比較方便,加入很簡單的代碼:import _
Time of Update: 2016-04-17
這是一個建立於
Time of Update: 2016-04-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。今天看無聞的視頻,2到5講的內容,一些摘要零星寫在下面:1. main函數作為程式入口,必須存在且在main的package裡2. type 用來聲明 新的類型,struct,interface3. import var const 等等都可以()來聲明多個,但是未調用函數的話會報錯,保證速度。var只能聲明全域變數時使用括弧,函數中聲明變數不行。4. import 可以取別名比如 import std “fmt”
Time of Update: 2016-04-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 大會感想:牛人真的很能寫代碼,實現很多功能,而且開源的精品越多,影響力越大,換工作跟玩似的,越能過上dream life。比如beego的作者,去了America,進入了Apple。另外,創業公司的精英們特點是表達能力很強,也能撕逼。比如Golang和Rust效能pk就爭論得不可開交。參與這種技術社群真的是讓人腦洞大開,記得誰說過那麼一句話--不讓你感到驚喜的語言不值得學。我想表達的是不讓我感到驚喜的會議不值得花錢參加。
Time of Update: 2016-04-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go原始碼根目錄結構|– AUTHORS — 檔案,官方 Go語言作者列表|– CONTRIBUTORS — 檔案,第三方貢獻者列表|– LICENSE — 檔案,Go語言發布授權協議|– PATENTS — 檔案,專利|– README —
Time of Update: 2016-04-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go語言可以參照官方網站http://golang.org/doc/install安裝過程:1.下載go 在https://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+Type-Archive下載合適版本2.進入下載後的目錄,假設將go解壓到/usr/local/下面,則輸入 tar -C
Time of Update: 2016-04-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 JSON(Javascript Object
Time of Update: 2016-04-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。項目中需要遍曆目錄,使用golang的walk函數,但在遍曆時遇到一個奇怪的問題:1.當從控制台輸入的路徑中含有中文字元時,會出現錯誤;2.在IDE中調試,輸入含中文字元的路徑時,正常;3.當把含中文的路徑直接寫進代碼時,正常。可能的原因:golang是使用utf-8編碼,windows是使用GBK編碼,難道在控制台輸入的路徑使用了GBK編碼,程式處理卻當成utf-8了?無解。。。代碼:var path
Time of Update: 2016-04-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。最近在看看一個Golang的項目,裡面使用了GLFW和GL來寫UI,之前從來沒有接觸過這兩個庫,安裝官方文檔寫了一個例子。package mainimport ( "runtime" "github.com/go-gl/glfw/v3.1/glfw")func init() { // This is needed to arrange that main() runs on
Time of Update: 2016-04-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。大家都知道golang裡的panic相當於其他語言裡的throw,而recover相當於其他語言裡的cacth,可是由於golang的recover機制要求必須在defer的函數裡才能執行catchpanic大概意思如下func protect(g func()) { defer func() { log.Println("done") //Println executes normally even if
Time of Update: 2016-04-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。熟悉Go函數的文法結構因為GO沒有類的概念,所以使用結構體來類比。代碼中的函數分別計算兩個整數的平方根和取數值的絕對值。package mainimport ("fmt""math")type MyFloat float64type Vertex struct {X, Y float64}//Vertex指標對應的Abs方法func (v *Vertex) Abs() float64
Time of Update: 2016-04-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。deferGo語言中有種不錯的設計,即延遲(defer)語句,你可以在函數中添加多個defer語句。當函數執行到最後時,這些defer語句會按照逆序執行,最後該函數返回。特別是當你在進行一些開啟資源的操作時,遇到錯誤需要提前返回,在返回前你需要關閉相應的資源,不然很容易造成資源流失等問題。如下代碼所示,我們一般寫開啟一個資源是這樣操作的:func ReadWrite() bool { file.Open("file&
Time of Update: 2016-04-16
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。使用MSI檔案,然後按照提示安裝圍棋工具。預設情況下,安裝程式使用轉到分布在c:\Go。安裝程式應設定c:\Go\bin目錄到Windows PATH環境變數。重新啟動任何開啟命令提示字元,以使更改生效。1.在官網 Go:https://golang.org/dl/ 下載 MSI檔案,不過現在這個網站可能被牆了,所以如果不想使用最新版本可以不去翻牆,百度網盤裡有很多安裝檔案2.安裝選擇安裝路徑,安裝過程中會自動設定環境變數3.
Time of Update: 2016-04-16
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。tcmalloctcmalloc 優點速度更快,比glicbc 2.3
Time of Update: 2016-04-16
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在項目過程中,遇到某處需要使用原廠模式,因此寫了個測試代碼進行測試,首先定義了interface Worker,其中包含一個介面Work(task *string)然後定義建立Worker的interface WorkerCreator,包含一個介面Create() ,傳回值為Workertype Worker interface { Work(task *string)}type WorkerCreator
Time of Update: 2016-04-16
標籤:轉自:http://www.cnblogs.com/yingying0907/archive/2012/11/21/2780092.html內插是數學領域數值分析中的通過已知的離散資料求未知資料的過程或方法。根據若干離散的資料資料,得到一個連續的函數(也就是曲線)或者更密碼編譯集的離散方程與已知資料相吻合。這個過程叫做擬合。內插是曲線必須通過已知點的擬合。1.線性插值已知座標 (x0, y0) 與 (x1, y1),要得到 [x0
Time of Update: 2016-04-16
標籤:我們從最簡單的問題開始:給定一個長度為N的整數數列a(i),i=0,1,...,N-1和窗長度k.要求: f(i) = max{a(i-k+1),a(i-k+2),..., a(i)},i =