Time of Update: 2016-05-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">go語言的channel是非常重要的組成部分, 因為go的核心-並發一定要用到這個.</span>我們知道並發在很多時候都是要進行通訊的. go語言的並發通訊是推薦我們使用channel 來進行,
Time of Update: 2016-05-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 golang
Time of Update: 2016-05-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 最近在學習golang,一直想做個網站來練練手,正好工作中確實需要這麼一個員工加班調休系統來記錄員工的加班和調休的情況,於是就想著用beego來搭建這個系統了,邊學邊做。 先記錄下在開發過程中遇到的一些問題吧,後面再把源碼弄上來。 1.beego的安裝。beego的安裝沒有什麼問題的,不過在安裝bee這個工具的時候遇到了難題,因為我是在windows下面使用,需要gcc支援。這個需要安裝windows下面的gcc版本軟體,
Time of Update: 2016-05-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1. 簡介Go 語言中內建有一個輕量級的測試架構 testing 和內建的 go test 命令來實現單元測試和效能測試。2. 要求檔案名稱必須是`_test.go`結尾的,這樣在執行`go test`的時候才會執行到相應的代碼你必須 import
Time of Update: 2016-05-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Sublime text 3 Download:http://www.sublimetext.com/3$sudo dpkg -i sublime-text_build-3103_amd64.deb$subl --versionSublime Text Build 3103$subl#卸載$dpkg -r sublime-textSublime Text3 註冊碼:—– BEGIN LICENSE —–Michael
Time of Update: 2016-05-08
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 為看並行編程發到何樣程度,21秒初識Go語言,聊記第一感覺。 文法亂,讓我糊塗,甚於Perl,納悶Go設計的第一宗旨是怎樣達到的,自然編譯器總感覺語言很清晰。 初看一下還挺有Pascal的味道的,那Professor W似乎又出現在面前。然而讀到 var a int = 1 這種句式時,+_+了,美感全無,有點像把定語後置、賓語前置或獨立主格結構都攪和在日語倒裝裡頭。
Time of Update: 2016-05-08
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 在編寫Go語言代碼的時候,我們應該習慣使用error類型值來表明非正常的狀態。作為慣用法,在Go語言標準庫程式碼封裝中的很多函數和方法也會以返回error類型值來表明錯誤狀態及其詳細資料。 error是一個預定義標識符,它代表了一個Go語言內建的介面類型。這個介面的型別宣告如下:type error interface{Error() string}
Time of Update: 2016-05-07
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。今天主要是總結一些不懂的東西------------------------------------------------------<span style="white-space:pre"></span>s := "pengjian"<span style="color:#ff0000;">a := []rune(s)
Time of Update: 2016-05-07
這是一個建立於
Time of Update: 2016-05-07
這是一個建立於
Time of Update: 2016-05-07
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang項目目錄結構 <golang_proj> ├─README ├─AUTHORS ├─<bin> ├─<pkg> ├─<src>
Time of Update: 2016-05-07
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ( "fmt" "github.com/garyburd/redigo/redis")func newConn() (redis.Conn, error) { c, err := redis.Dial("tcp", "192.168.0.2:6379") if err != nil {
Time of Update: 2016-05-07
這是一個建立於
Time of Update: 2016-05-07
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。type File struct {// ...}func (f *File) Read(buf []byte) (n int, err error)func (f *File) Write(buf []byte) (n int, err error)func (f *File) Seek(off int64, whence int) (pos int64, err error)func (f *File) Close()
Time of Update: 2016-05-09
標籤: 個人的畢業長足---- 暴走北京 ----致偉大的爸,媽!
Time of Update: 2016-05-06
標籤:內建 map 類型是必須的。首先,該類型使用頻率很高;其次,可藉助 runtime 實現深層次最佳化(比如說字串轉換,以及 GC 掃描等)。可儘管如此,也不意味著萬事大吉,依舊有很多需特別注意的地方。1.預設容量map 會按需擴張,但須付出資料拷貝和重新雜湊成本。如有可能,應儘可能預設足夠容量空間,避免此類行為發生。從結果看,預設容量的 map 顯然效能更好,更極大減少了堆記憶體配置次數。2.直接儲存對於小對象,直接將資料交由 map
Time of Update: 2016-05-06
標籤:介面的用途無需多言。但這並不意味著可在任何場合使用介面,要知道通過介面調用和普通調用存在很大差別。首先,相比靜態繫結,動態綁定效能要差很多;其次,運行期需額外開銷,比如介面會複製對象,哪怕僅是個指標,也會在堆上增加一個需 GC 處理的目標。顯然,對於壓力很大的內部組件之間,用介面有些得不償失。對比介面調用和普通調用的彙編指令,以便有個直觀的認識。普通調用被內聯,但介面調用就沒有這個待遇了。就算在 ifaceCall
Time of Update: 2016-05-06
標籤:作為內建類型,通道(channel)從運行時得到很多支援,其自身設計也算得上精巧。但不管怎麼說,它本質上依舊是一種隊列,當多個 goroutine 並行作業時,免不了要使用鎖。某些時候,這種競爭機制,會導致效能問題。下面是一個簡單利用 channel 收發資料的樣本,為便於 “準確” 測量收發操作效能,我們將 make channel 操作放到外部,儘可能避免額外消耗。在研究 go runtime 源碼實現過程中,會看到大量利用 “批操作”
Time of Update: 2016-05-06
標籤:儘管反射(reflect)存在效能問題,但依然被頻繁使用,以彌補靜態語言在動態行為上的不足。只是某些時候,我們須對此做些變通,以提升效能。為便於閱讀,以下樣本均做了最大程度精簡。如果是 reflect.Type,可將其緩衝,避免重複操作耗時。但 Value 顯然不行,因為它和具體對象綁定,內部儲存執行個體指標。換個思路,欄位相對於結構,除名稱(name)外,還有位移量(offset)這個唯一屬性。利用位移量,將 FieldByName
Time of Update: 2016-05-06
標籤:閉包(closure)也是很常見的編碼模式,因它隱式攜帶上下文環境變數,因此可讓演算法代碼變得更加簡潔。但任何 “便利” 和 “優雅” 的背後,往往都是更複雜的實現機制,無非是文法糖或編譯器隱藏了相關細節。最終,這些都會變成額外成本在運行期由 CPU、runtime