Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。前言 由於前一階段實習中接到的項目的告一段落,不知不覺便多出了許多空餘的時間,於是就想總結一下最近因為個人興趣而學習的一些東西。從這篇文章開始以及後面陸續的幾篇關於GO語言的文章,均是博主最近對GO語言學習過程中的一些感悟、總結,類似於學習筆記的東西。記錄下來並整理成部落格一為對學習的知識做一個整理,二為分享出來給大家(因為國內關於GO語言的中文資料比較少),由於博主能力和知識有限,難免有所靡誤,還望勘正。
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。目前這個GO社區非常活躍,郵件清單裡每天都有幾百個討論,加上有Google的強力支援, 個人認為非常有前途。那麼GO能解決什麼問題:1. 硬體很快 軟體開發很慢。2. 依賴很麻煩。3. c++ java太笨拙。4. 並行和gc5.
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ( "net/smtp" "fmt" "strings")/* * user : example@example.com login smtp server user * password: xxxxx login smtp server password * host:
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Embedding Go does not provide the typical, type-driven notion of subclassing, but it does have the ability to “borrow” pieces of an implementation by embedding types within a struct or interface.
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。type $name struct{ property01 int property02 int }Golang裡面的方法和介面都是基於這裡type *** struct建立的類型,這裡其實可以理解為:class $name { public int property01; public int property02; }類型就是類。所以我們說是類型的某個方法,類型實現了某個介面。
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。首先當然是安裝go運行環境,安裝方法參看:http://www.cnblogs.com/ghj1976/archive/2013/01/16/2863142.html 一、安裝 Mercurial Mercurial
Time of Update: 2014-10-04
這是一個建立於
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 golang 1.2.1的GC因為演算法的問題,在實際應用過程中,對於長時間啟動並執行daemon程式,確實很容易導致記憶體泄露,有人用cgo來手動管理記憶體,也有人用pool來管理buffer,這些都很麻煩,還是等1.3發布吧,在 golang 1.2.1中,如果注意一些坑,還是很容易寫出穩定啟動並執行程式。1. 避免遞迴;2.在for裡面,把一些每次重複的操作提到外面,比如包的init方法中執行,
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。前幾日寫一個網頁的簡單計數器問題時發現,計數器居然永遠為0,計數器不計數,見鬼了。。。代碼如下:type Counter struct {n int}func (ctr Counter) ServeHTTP(c http.ResponseWriter, req *http.Request) {fmt.Fprintf(c, "%08x\n", ctr)ctr.n++fmt.Fprintf(c,
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang練習 找到數組中的最大值,把最大值翻轉到隊尾,再把最大值翻到隊頭。 package mainimport ("fmt")// arr 2,5,3,1,4// arr 2,4,1,3func revert(arr []int) {for i,j:=0,len(arr)-1; i<j; i,j=i+1,j-1 {arr[i], arr[j]=arr[j], arr[i]//fmt.Print(arr)
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang講解(go語言)標準庫分析之os(7) 今天我們繼續講golang標準庫的os包,依然是沒有廢話直接來 (1)(f *File).Name()這個函數是返迴文件的名稱,函數原型func (f *File) Name() string要檔案的指標操作,返回字串,感覺比較雞助的方法底層實現 func (f *File) Name() string { return f.name } import ( "
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。前言 在Goroutines 併發模式(一)中,我們簡單地通過boring函數的例子來粗略地闡述了通過channels來和goroutines交流的方法。在本篇中,我將從pattern的方向出發,通過對boring函數的例子進行各種改寫,來講解幾種常見了goroutines的併發模式。 併發模式 讓我們先來回顧一下boring函數的例子。
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。參考《Go_web_編程.pdf》See Also:Go 語言簡介(上)— 文法Go 語言簡介(下)— 特性首先編寫一個簡單的指令碼hello.go/** 定義包名* main 表示可獨立運行* [other] 編譯產生.a檔案*/package main/** 引入系統層級包 fmt*/import "fmt"// main.main 是每一個可執行程式的進入點func main() {
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang中defer的執行大家都知道golang的defer關鍵字,它可以在函數返回前執行一些操作,最常用的就是開啟一個資源(例如一個檔案、資料庫連接等)時就用defer延遲關閉改資源,以免引起記憶體流失。例如:func do() (ok bool) { file,_ := os.Open("c:\a.txt") defer file.Close() // doSomething return
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go get code.google.com/p/freetype-go/freetype安裝freetype報錯:package code.google.com/p/freetype-go/freetype: exec: "hg": executable file not found in
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Names Names are as important in Go as in any other language. In some cases they even have semantic effect: for instance, the visibility of a name outside a package is determined by whether its first character is
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。今天在群裡看見有人寫了一個InAarry方法,主要作用是判斷一個元素是否在slice中,看完後,我感覺方法應該還有擴充的空間於是自己重新寫了一個Contains方法,可以支援 slice,array,map等類型 package mainimport ( "errors" "fmt" "reflect")//
Time of Update: 2014-10-04
這是一個建立於
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。method的文法如下:func (r ReceiverType) funcName(parameters) (results)下面我們用最開始的例子用method來實現:package mainimport ( "fmt" "math")type Rectangle struct { width, height float64}type Circle struct {
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。下載解壓: 設定環境變數:vim .profile運行設定VIM環境,查看在go目錄下misc/vim/readme.txt1 mkdir -p $HOME/.vim/ftdetect2 mkdir -p $HOME/.vim/syntax3 mkdir -p $HOME/.vim/autoload/go4 ln -s $GOROOT/misc/vim/ftdetect/gofiletype.vim